[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [labplot] src/backend/datasources/filters: consider data type in import preview
From: Stefan Gerlach <null () kde ! org>
Date: 2017-06-30 20:20:20
Message-ID: E1dR2Oq-0001jd-8E () code ! kde ! org
[Download RAW message or body]
Git commit bafb1bf6d29283b7907beb251f75934d386cdc08 by Stefan Gerlach.
Committed on 30/06/2017 at 20:20.
Pushed by sgerlach into branch 'master'.
consider data type in import preview
M +21 -20 src/backend/datasources/filters/AsciiFilter.cpp
M +1 -0 src/backend/datasources/filters/AsciiFilterPrivate.h
https://commits.kde.org/labplot/bafb1bf6d29283b7907beb251f75934d386cdc08
diff --git a/src/backend/datasources/filters/AsciiFilter.cpp \
b/src/backend/datasources/filters/AsciiFilter.cpp index 710d8fe1..a64c9ff6 100644
--- a/src/backend/datasources/filters/AsciiFilter.cpp
+++ b/src/backend/datasources/filters/AsciiFilter.cpp
@@ -542,28 +542,29 @@ QVector<QStringList> \
AsciiFilterPrivate::readDataFromDevice(QIODevice& device, A const QString \
valueString = lineStringList.at(n);
// set value depending on data type
- if (dataSource) {
- switch (columnModes[n]) {
- case AbstractColumn::Numeric: {
- bool isNumber;
- const double value = valueString.toDouble(&isNumber);
+ switch (columnModes[n]) {
+ case AbstractColumn::Numeric: {
+ bool isNumber;
+ const double value = valueString.toDouble(&isNumber);
+ if (dataSource)
static_cast<QVector<double>*>(dataContainer[n])->operator[](currentRow) = \
(isNumber ? value : NAN);
- break;
- }
- case AbstractColumn::DateTime: {
- const QDateTime valueDateTime = QDateTime::fromString(valueString, \
dateTimeFormat);
- if (valueDateTime.isValid())
- static_cast<QVector<QDateTime>*>(dataContainer[n])->operator[](currentRow) = \
valueDateTime;
- else
- static_cast<QVector<QDateTime>*>(dataContainer[n])->operator[](currentRow) = \
QDateTime();
- break;
- }
- case AbstractColumn::Text:
+ else
+ lineString += QString::number(isNumber ? value : NAN);
+ break;
+ }
+ case AbstractColumn::DateTime: {
+ const QDateTime valueDateTime = QDateTime::fromString(valueString, \
dateTimeFormat); + if (dataSource)
+ static_cast<QVector<QDateTime>*>(dataContainer[n])->operator[](currentRow) = \
valueDateTime.isValid() ? valueDateTime : QDateTime(); + else
+ lineString += valueDateTime.isValid() ? valueDateTime.toString(dateTimeFormat) \
: QLatin1String(" "); + break;
+ }
+ case AbstractColumn::Text:
+ if (dataSource)
static_cast<QVector<QString>*>(dataContainer[n])->operator[](currentRow) = \
valueString;
- }
- } else { // preview
- //TODO: type dependent conversion
- lineString += valueString;
+ else
+ lineString += valueString;
}
} else { // missing columns in this line
if (dataSource) {
diff --git a/src/backend/datasources/filters/AsciiFilterPrivate.h \
b/src/backend/datasources/filters/AsciiFilterPrivate.h index 91cf1148..82f9bf9a \
100644
--- a/src/backend/datasources/filters/AsciiFilterPrivate.h
+++ b/src/backend/datasources/filters/AsciiFilterPrivate.h
@@ -4,6 +4,7 @@
Description : Private implementation class for AsciiFilter.
--------------------------------------------------------------------
Copyright : (C) 2009-2013 Alexander Semke (alexander.semke@web.de)
+ Copyright : (C) 2017 Stefan Gerlach (stefan.gerlach@uni.kn)
***************************************************************************/
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic