diff options
| author | 2016-06-13 18:42:57 -0400 | |
|---|---|---|
| committer | 2016-06-13 18:42:57 -0400 | |
| commit | 65d5f68cc6dc81799c5a5d90400a2c1f0dd02547 (patch) | |
| tree | 6f245ba901b87ef42fed69965aea22f5eea6b590 /Plugins/CsvImport/csvimport.cpp | |
| parent | aeb6bad01630d325a4e768e798a7a6d44e18fdaf (diff) | |
| parent | 5d9314f134ddd3dc4c853e398ac90ba247fb2e4f (diff) | |
Merge tag 'upstream/3.1.0'
Upstream version 3.1.0
# gpg: Signature made Mon 13 Jun 2016 06:42:54 PM EDT using RSA key ID EBE9BD91
# gpg: Good signature from "Unit 193 <unit193@gmail.com>"
# gpg: aka "Unit 193 <unit193@ninthfloor.org>"
# gpg: aka "Unit 193 <unit193@ubuntu.com>"
# gpg: aka "Unit 193 <unit193@ninthfloor.com>"
Diffstat (limited to 'Plugins/CsvImport/csvimport.cpp')
| -rw-r--r-- | Plugins/CsvImport/csvimport.cpp | 50 |
1 files changed, 21 insertions, 29 deletions
diff --git a/Plugins/CsvImport/csvimport.cpp b/Plugins/CsvImport/csvimport.cpp index cec81df..b1d52ee 100644 --- a/Plugins/CsvImport/csvimport.cpp +++ b/Plugins/CsvImport/csvimport.cpp @@ -53,26 +53,25 @@ void CsvImport::afterImport() bool CsvImport::extractColumns() { - QString line = stream->readLine(); - while (line.trimmed().isEmpty() && !stream->atEnd()) - line = stream->readLine(); + QStringList deserializedEntry = CsvSerializer::deserializeOneEntry(*stream, csvFormat); + while (deserializedEntry.isEmpty() && !stream->atEnd()) + deserializedEntry = CsvSerializer::deserializeOneEntry(*stream, csvFormat); - if (line.trimmed().isEmpty()) + if (deserializedEntry.isEmpty()) { notifyError(tr("Could not find any data in the file %1.").arg(file->fileName())); return false; } - QStringList deserialized = CsvSerializer::deserialize(line.trimmed(), csvFormat).first(); if (cfg.CsvImport.FirstRowAsColumns.get()) { - columnNames = deserialized; + columnNames = deserializedEntry; } else { static const QString colTmp = QStringLiteral("column%1"); columnNames.clear(); - for (int i = 1, total = deserialized.size(); i <= total; ++i) + for (int i = 1, total = deserializedEntry.size(); i <= total; ++i) columnNames << colTmp.arg(i); stream->seek(0); @@ -117,31 +116,28 @@ QList<ImportPlugin::ColumnDefinition> CsvImport::getColumns() const QList<QVariant> CsvImport::next() { - QString line = stream->readLine(); - if (line.isNull()) - return QList<QVariant>(); + QStringList deserializedEntry = CsvSerializer::deserializeOneEntry(*stream, csvFormat); QList<QVariant> values; - QList<QStringList> deserialized = CsvSerializer::deserialize(line, csvFormat); - if (deserialized.size() > 0) + if (deserializedEntry.isEmpty()) + return values; + + if (cfg.CsvImport.NullValues.get()) { - if (cfg.CsvImport.NullValues.get()) + QString nullVal = cfg.CsvImport.NullValueString.get(); + for (const QString& val : deserializedEntry) { - QString nullVal = cfg.CsvImport.NullValueString.get(); - for (const QString& val : deserialized.first()) - { - if (val == nullVal) - values << QVariant(QVariant::String); - else - values << val; - } - } - else - { - for (const QString& val : deserialized.first()) + if (val == nullVal) + values << QVariant(QVariant::String); + else values << val; } } + else + { + for (const QString& val : deserializedEntry) + values << val; + } return values; } @@ -176,10 +172,6 @@ bool CsvImport::validateOptions() if (cfg.CsvImport.NullValues.get()) { IMPORT_MANAGER->updateVisibilityAndEnabled(cfg.CsvImport.NullValueString, true, true); - - bool valid = !cfg.CsvImport.NullValueString.get().isEmpty(); - IMPORT_MANAGER->handleValidationFromPlugin(valid, cfg.CsvImport.NullValueString, tr("Enter the value that will be interpreted as a NULL.")); - isValid &= valid; } else { |
