summaryrefslogtreecommitdiffstats
path: root/qt-ui/divelogimportdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/divelogimportdialog.cpp')
-rw-r--r--qt-ui/divelogimportdialog.cpp18
1 files changed, 16 insertions, 2 deletions
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);