From fb367b22b09b9b1a4bf82fd2fd7b36c0fffa95ee Mon Sep 17 00:00:00 2001 From: Miika Turkia Date: Sat, 24 Jan 2015 17:03:15 +0200 Subject: Switch Subsurface CSV import to use tab separator As changing the export to use tabs, we need to switch the import to do that as well. However, we also need to support comma separation as older exports use that. Signed-off-by: Miika Turkia Signed-off-by: Dirk Hohndel --- qt-ui/divelogimportdialog.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'qt-ui') diff --git a/qt-ui/divelogimportdialog.cpp b/qt-ui/divelogimportdialog.cpp index 0f060b3ee..ecd09bc57 100644 --- a/qt-ui/divelogimportdialog.cpp +++ b/qt-ui/divelogimportdialog.cpp @@ -16,7 +16,7 @@ const DiveLogImportDialog::CSVAppConfig DiveLogImportDialog::CSVApps[CSVAPPS] = { "XP5", 0, 1, 9, -1, -1, -1, -1, -1, -1, "Tab" }, { "SensusCSV", 9, 10, -1, -1, -1, -1, -1, -1, -1, "," }, { "Seabear CSV", 0, 1, 5, -1, -1, 2, 3, 4, 6, ";" }, - { "SubsurfaceCSV", -1, -1, -1, -1, -1, -1, -1, -1, -1, "," }, + { "SubsurfaceCSV", -1, -1, -1, -1, -1, -1, -1, -1, -1, "Tab" }, { NULL, } }; @@ -440,7 +440,21 @@ void DiveLogImportDialog::loadFileContents(int value, whatChanged triggeredBy) } if (triggeredBy == KNOWNTYPES && value != 0) { // an actual known type - separator = CSVApps[value].separator; + if (value == 5) { + /* + * Subsurface CSV file needs separator detection + * as we used to default to comma but switched + * to tab. + */ + int tabs = firstLine.count('\t'); + int commas = firstLine.count(','); + if (tabs > commas) + separator = "Tab"; + else + separator = ","; + } else { + separator = CSVApps[value].separator; + } if (ui->CSVSeparator->currentText() != separator || separator == "Tab") { ui->CSVSeparator->blockSignals(true); -- cgit v1.2.3-70-g09d2