[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