summaryrefslogtreecommitdiffstats
path: root/Plugins/CsvImport/csvimport.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2016-06-13 18:42:42 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2016-06-13 18:42:42 -0400
commit5d9314f134ddd3dc4c853e398ac90ba247fb2e4f (patch)
tree5c457fc188036988d7abd29a3eb09931e406510f /Plugins/CsvImport/csvimport.cpp
parent8e640722c62692818ab840d50b3758f89a41a54e (diff)
Imported Upstream version 3.1.0upstream/3.1.0
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
{