From kde-commits Fri Jun 30 20:20:20 2017 From: Stefan Gerlach Date: Fri, 30 Jun 2017 20:20:20 +0000 To: kde-commits Subject: [labplot] src/backend/datasources/filters: consider data type in import preview Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=149885403127599 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 AsciiFilterPrivate::readDataFrom= Device(QIODevice& device, A const QString valueString =3D lineStringList.at(n); = // set value depending on data type - if (dataSource) { - switch (columnModes[n]) { - case AbstractColumn::Numeric: { - bool isNumber; - const double value =3D valueString.toDouble(&isNumber); + switch (columnModes[n]) { + case AbstractColumn::Numeric: { + bool isNumber; + const double value =3D valueString.toDouble(&isNumber); + if (dataSource) static_cast*>(dataContainer[n])->operator[](currentR= ow) =3D (isNumber ? value : NAN); - break; - } - case AbstractColumn::DateTime: { - const QDateTime valueDateTime =3D QDateTime::fromString(valueString,= dateTimeFormat); - if (valueDateTime.isValid()) - static_cast*>(dataContainer[n])->operator[](curr= entRow) =3D valueDateTime; - else - static_cast*>(dataContainer[n])->operator[](curr= entRow) =3D QDateTime(); - break; - } - case AbstractColumn::Text: + else + lineString +=3D QString::number(isNumber ? value : NAN); + break; + } + case AbstractColumn::DateTime: { + const QDateTime valueDateTime =3D QDateTime::fromString(valueString, = dateTimeFormat); + if (dataSource) + static_cast*>(dataContainer[n])->operator[](curre= ntRow) =3D valueDateTime.isValid() ? valueDateTime : QDateTime(); + else + lineString +=3D valueDateTime.isValid() ? valueDateTime.toString(dat= eTimeFormat) : QLatin1String(" "); + break; + } + case AbstractColumn::Text: + if (dataSource) static_cast*>(dataContainer[n])->operator[](current= Row) =3D valueString; - } - } else { // preview - //TODO: type dependent conversion - lineString +=3D valueString; + else + lineString +=3D valueString; } } else { // missing columns in this line if (dataSource) { diff --git a/src/backend/datasources/filters/AsciiFilterPrivate.h b/src/bac= kend/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) = *************************************************************************= **/ =20