From 376152da8ce4d6e54b58cd5fb24ba65a3cec4184 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Mon, 26 Dec 2022 15:38:12 +0200 Subject: [PATCH] Improve error messages while import CSV data. Show correct row number. --- ChangeLog.txt | 1 + src/app/tape/tmainwindow.cpp | 22 ++++++++++++++++------ src/app/tape/tmainwindow.h | 4 ++-- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index c09a136dd..be68caa21 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,7 @@ - Export area of piece in Final measurements. - New option Show accuracy radius. - New option Interactive tools. +- Improve error messages while import CSV data. # Valentina 0.7.52 September 12, 2022 - Fix crash when default locale is ru. diff --git a/src/app/tape/tmainwindow.cpp b/src/app/tape/tmainwindow.cpp index 495411d7b..16c675bb5 100644 --- a/src/app/tape/tmainwindow.cpp +++ b/src/app/tape/tmainwindow.cpp @@ -1112,11 +1112,11 @@ void TMainWindow::ImportDataFromCSV() if (m_m->Type() == MeasurementsType::Individual) { - ImportIndividualMeasurements(csv, map); + ImportIndividualMeasurements(csv, map, dialog.IsWithHeader()); } else { - ImportMultisizeMeasurements(csv, map); + ImportMultisizeMeasurements(csv, map, dialog.IsWithHeader()); } } } @@ -3930,7 +3930,7 @@ void TMainWindow::RefreshDataAfterImport() } //--------------------------------------------------------------------------------------------------------------------- -void TMainWindow::ImportIndividualMeasurements(const QxtCsvModel &csv, const QVector &map) +void TMainWindow::ImportIndividualMeasurements(const QxtCsvModel &csv, const QVector &map, bool withHeader) { const int columns = csv.columnCount(); const int rows = csv.rowCount(); @@ -3999,7 +3999,12 @@ void TMainWindow::ImportIndividualMeasurements(const QxtCsvModel &csv, const QVe } catch (VException &e) { - ShowError(tr("Error in row %1.").arg(i) + QLatin1Char(' ') + e.ErrorMessage()); + int rowIndex = i+1; + if (withHeader) + { + ++rowIndex; + } + ShowError(tr("Error in row %1. %2").arg(rowIndex).arg(e.ErrorMessage())); return; } } @@ -4023,7 +4028,7 @@ void TMainWindow::ImportIndividualMeasurements(const QxtCsvModel &csv, const QVe } //--------------------------------------------------------------------------------------------------------------------- -void TMainWindow::ImportMultisizeMeasurements(const QxtCsvModel &csv, const QVector &map) +void TMainWindow::ImportMultisizeMeasurements(const QxtCsvModel &csv, const QVector &map, bool withHeader) { const int columns = csv.columnCount(); @@ -4047,7 +4052,12 @@ void TMainWindow::ImportMultisizeMeasurements(const QxtCsvModel &csv, const QVec } catch (VException &e) { - ShowError(tr("Error in row %1.").arg(i) + QLatin1Char(' ') + e.ErrorMessage()); + int rowIndex = i+1; + if (withHeader) + { + ++rowIndex; + } + ShowError(tr("Error in row %1. %2").arg(rowIndex).arg(e.ErrorMessage())); return; } } diff --git a/src/app/tape/tmainwindow.h b/src/app/tape/tmainwindow.h index 6575506ad..daf856c48 100644 --- a/src/app/tape/tmainwindow.h +++ b/src/app/tape/tmainwindow.h @@ -263,8 +263,8 @@ private: void ShowError(const QString &text); void RefreshDataAfterImport(); - void ImportIndividualMeasurements(const QxtCsvModel &csv, const QVector &map); - void ImportMultisizeMeasurements(const QxtCsvModel &csv, const QVector &map); + void ImportIndividualMeasurements(const QxtCsvModel &csv, const QVector &map, bool withHeader); + void ImportMultisizeMeasurements(const QxtCsvModel &csv, const QVector &map, bool withHeader); auto ImportMultisizeMeasurement(const QxtCsvModel &csv, int i, const QVector &map, int dimensionsCount, QSet &importedNames) -> MultisizeMeasurement;