diff --git a/src/backend/core/column/ColumnPrivate.cpp b/src/backend/core/column/ColumnPrivate.cpp index 60e16a445f1537e1e4ed581d471450c84ef90f66..af7ae500ff1ea93468d7585071a89c9bab5f9495 100644 --- a/src/backend/core/column/ColumnPrivate.cpp +++ b/src/backend/core/column/ColumnPrivate.cpp @@ -353,21 +353,21 @@ void ColumnPrivate::setColumnMode(AbstractColumn::ColumnMode mode) { break; case AbstractColumn::ColumnMode::Numeric: filter = new String2DoubleFilter(); - //TODO: set number locale + static_cast(filter)->setNumberLocale(numberLocale); filter_is_temporary = true; temp_col = new Column("temp_col", *(static_cast*>(old_data)), m_column_mode); m_data = new QVector(); break; case AbstractColumn::ColumnMode::Integer: filter = new String2IntegerFilter(); - //TODO: set number locale + static_cast(filter)->setNumberLocale(numberLocale); filter_is_temporary = true; temp_col = new Column("temp_col", *(static_cast*>(old_data)), m_column_mode); m_data = new QVector(); break; case AbstractColumn::ColumnMode::BigInt: filter = new String2BigIntFilter(); - //TODO: set number locale + static_cast(filter)->setNumberLocale(numberLocale); filter_is_temporary = true; temp_col = new Column("temp_col", *(static_cast*>(old_data)), m_column_mode); m_data = new QVector(); diff --git a/src/backend/datasources/filters/AbstractFileFilter.cpp b/src/backend/datasources/filters/AbstractFileFilter.cpp index b8b4679471604e0bf318b707769e7665c8553089..6a27a7c8cfdb9f5067a01772947a9919888bac44 100644 --- a/src/backend/datasources/filters/AbstractFileFilter.cpp +++ b/src/backend/datasources/filters/AbstractFileFilter.cpp @@ -44,17 +44,13 @@ bool AbstractFileFilter::isNan(const QString& s) { return false; } -AbstractColumn::ColumnMode AbstractFileFilter::columnMode(const QString& valueString, const QString& dateTimeFormat) { - QLocale locale; - return columnMode(valueString, dateTimeFormat, locale); -} AbstractColumn::ColumnMode AbstractFileFilter::columnMode(const QString& valueString, const QString& dateTimeFormat, QLocale::Language lang) { - QLocale locale(lang); - return columnMode(valueString, dateTimeFormat, locale); + return columnMode(valueString, dateTimeFormat, QLocale(lang)); } AbstractColumn::ColumnMode AbstractFileFilter::columnMode(const QString& valueString, const QString& dateTimeFormat, const QLocale& locale) { + DEBUG("AbstractFileFilter::columnMode()") //TODO: use BigInt as default integer? if (valueString.size() == 0) // empty string treated as integer (meaning the non-empty strings will determine the data type) diff --git a/src/backend/datasources/filters/AbstractFileFilter.h b/src/backend/datasources/filters/AbstractFileFilter.h index 5c14880376de4886dab5228fb7846a9553576e9f..982eadc80054ebc15d229280244ab2b9764f96c1 100644 --- a/src/backend/datasources/filters/AbstractFileFilter.h +++ b/src/backend/datasources/filters/AbstractFileFilter.h @@ -51,9 +51,8 @@ public: ~AbstractFileFilter() override = default; static bool isNan(const QString&); - static AbstractColumn::ColumnMode columnMode(const QString& valueString, const QString& dateTimeFormat); static AbstractColumn::ColumnMode columnMode(const QString& valueString, const QString& dateTimeFormat, QLocale::Language); - static AbstractColumn::ColumnMode columnMode(const QString& valueString, const QString& dateTimeFormat, const QLocale&); + static AbstractColumn::ColumnMode columnMode(const QString& valueString, const QString& dateTimeFormat, const QLocale& = QLocale()); static QStringList numberFormats(); static AbstractFileFilter::FileType fileType(const QString&); static QStringList fileTypes(); diff --git a/src/commonfrontend/spreadsheet/SpreadsheetView.cpp b/src/commonfrontend/spreadsheet/SpreadsheetView.cpp index 489308547cb23658be29dcb8d865a3ce464d92b3..90334c4408efbc479936f5d6493be736d7189dc9 100644 --- a/src/commonfrontend/spreadsheet/SpreadsheetView.cpp +++ b/src/commonfrontend/spreadsheet/SpreadsheetView.cpp @@ -1540,7 +1540,7 @@ void SpreadsheetView::pasteIntoSelection() { // if (!localeDetermined) // localeDetermined = determineLocale(nonEmptyValue, locale); - const auto mode = AbstractFileFilter::columnMode(nonEmptyValue, QLatin1String("yyyy-dd-MM hh:mm:ss:zzz")); + const auto mode = AbstractFileFilter::columnMode(nonEmptyValue, QLatin1String("yyyy-dd-MM hh:mm:ss:zzz"), numberLocale); col->setColumnMode(mode); } @@ -1560,7 +1560,7 @@ void SpreadsheetView::pasteIntoSelection() { // if (!localeDetermined) // localeDetermined = determineLocale(nonEmptyValue, locale); - const auto mode = AbstractFileFilter::columnMode(nonEmptyValue, QLatin1String("yyyy-dd-MM hh:mm:ss:zzz")); + const auto mode = AbstractFileFilter::columnMode(nonEmptyValue, QLatin1String("yyyy-dd-MM hh:mm:ss:zzz"), numberLocale); Column* new_col = new Column(QString::number(curCol), mode); new_col->setPlotDesignation(AbstractColumn::PlotDesignation::Y); new_col->insertRows(0, m_spreadsheet->rowCount());