aboutsummaryrefslogtreecommitdiffstats
path: root/Plugins/CsvImport/csvimport.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2016-06-13 18:42:57 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2016-06-13 18:42:57 -0400
commit65d5f68cc6dc81799c5a5d90400a2c1f0dd02547 (patch)
tree6f245ba901b87ef42fed69965aea22f5eea6b590 /Plugins/CsvImport/csvimport.cpp
parentaeb6bad01630d325a4e768e798a7a6d44e18fdaf (diff)
parent5d9314f134ddd3dc4c853e398ac90ba247fb2e4f (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.cpp50
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
{