From c52bbc660c75c47f79fc6c64762000d956d85aa4 Mon Sep 17 00:00:00 2001 From: Miika Turkia Date: Sun, 24 Apr 2016 21:11:15 +0300 Subject: Detect pipe as field separator in CSV import Signed-off-by: Miika Turkia Signed-off-by: Dirk Hohndel --- qt-ui/divelogimportdialog.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'qt-ui/divelogimportdialog.cpp') diff --git a/qt-ui/divelogimportdialog.cpp b/qt-ui/divelogimportdialog.cpp index 26d38788c..ae12b7c54 100644 --- a/qt-ui/divelogimportdialog.cpp +++ b/qt-ui/divelogimportdialog.cpp @@ -339,7 +339,7 @@ DiveLogImportDialog::DiveLogImportDialog(QStringList fn, QWidget *parent) : QDia for (int i = 0; !CSVApps[i].name.isNull(); ++i) ui->knownImports->addItem(CSVApps[i].name); - ui->CSVSeparator->addItems( QStringList() << tr("Tab") << "," << ";"); + ui->CSVSeparator->addItems( QStringList() << tr("Tab") << "," << ";" << "|"); loadFileContents(-1, INITIAL); @@ -479,11 +479,14 @@ void DiveLogImportDialog::loadFileContents(int value, whatChanged triggeredBy) int tabs = firstLine.count('\t'); int commas = firstLine.count(','); int semis = firstLine.count(';'); - if (tabs > commas && tabs > semis) + int pipes = firstLine.count('|'); + if (tabs > commas && tabs > semis && tabs > pipes) separator = "\t"; - else if (commas > tabs && commas > semis) + else if (commas > tabs && commas > semis && commas > pipes) separator = ","; - else if (semis > tabs && semis > commas) + else if (pipes > tabs && pipes > commas && pipes > semis) + separator = "|"; + else if (semis > tabs && semis > commas && semis > pipes) separator = ";"; if (ui->CSVSeparator->currentText() != separator) { blockSignals(true); -- cgit v1.2.3-70-g09d2