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 <[email protected]> --- qt-ui/divelogimportdialog.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/qt-ui/divelogimportdialog.cpp b/qt-ui/divelogimportdialog.cpp index 0f060b3..ecd09bc 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); -- 1.9.1 _______________________________________________ subsurface mailing list [email protected] http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
