diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2018-09-28 13:59:01 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2018-09-28 15:06:00 -0700 |
commit | 32a4ce61694bfe8364227440ea5716df7cc61fd1 (patch) | |
tree | 257ac4f9204182b20d7e4bda7bc80911bc6303a6 /desktop-widgets | |
parent | a5db03c2b32115b14e4b83501a0771b186d87913 (diff) | |
download | subsurface-32a4ce61694bfe8364227440ea5716df7cc61fd1.tar.gz |
Parser: parse text-based files into arbitrary table
In d815e0c9476ef62e6b84fb28ce48ab7cddefe77e a dive_table pointer
was added to the parsing functions to allow parsing into tables
other than the global dive table. This will be necessary for undo of
import and implementation a cleaner interface. A few cases, notably
CSV and proprietary formats were forgotten.
Implement parsing into arbitrary tables also for these cases.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets')
-rw-r--r-- | desktop-widgets/divelogimportdialog.cpp | 12 | ||||
-rw-r--r-- | desktop-widgets/mainwindow.cpp | 2 |
2 files changed, 7 insertions, 7 deletions
diff --git a/desktop-widgets/divelogimportdialog.cpp b/desktop-widgets/divelogimportdialog.cpp index 967330277..4d092bb8c 100644 --- a/desktop-widgets/divelogimportdialog.cpp +++ b/desktop-widgets/divelogimportdialog.cpp @@ -844,9 +844,7 @@ void DiveLogImportDialog::on_buttonBox_accepted() if (ui->knownImports->currentText() != "Manual import") { for (int i = 0; i < fileNames.size(); ++i) { if (ui->knownImports->currentText() == "Seabear CSV") { - - parse_seabear_log(qPrintable(fileNames[i])); - + parse_seabear_log(qPrintable(fileNames[i]), &dive_table); } else { char *params[49]; int pnr = 0; @@ -862,7 +860,8 @@ void DiveLogImportDialog::on_buttonBox_accepted() } pnr = setup_csv_params(r, params, pnr); parse_csv_file(qPrintable(fileNames[i]), params, pnr - 1, - specialCSV.contains(ui->knownImports->currentIndex()) ? qPrintable(CSVApps[ui->knownImports->currentIndex()].name) : "csv"); + specialCSV.contains(ui->knownImports->currentIndex()) ? qPrintable(CSVApps[ui->knownImports->currentIndex()].name) : "csv", + &dive_table); } } } else { @@ -926,7 +925,7 @@ void DiveLogImportDialog::on_buttonBox_accepted() params[pnr++] = intdup(r.indexOf(tr("Rating"))); params[pnr++] = NULL; - parse_manual_file(qPrintable(fileNames[i]), params, pnr - 1); + parse_manual_file(qPrintable(fileNames[i]), params, pnr - 1, &dive_table); } else { char *params[51]; int pnr = 0; @@ -942,7 +941,8 @@ void DiveLogImportDialog::on_buttonBox_accepted() } pnr = setup_csv_params(r, params, pnr); parse_csv_file(qPrintable(fileNames[i]), params, pnr - 1, - specialCSV.contains(ui->knownImports->currentIndex()) ? qPrintable(CSVApps[ui->knownImports->currentIndex()].name) : "csv"); + specialCSV.contains(ui->knownImports->currentIndex()) ? qPrintable(CSVApps[ui->knownImports->currentIndex()].name) : "csv", + &dive_table); } } } diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp index 08b4a07b5..887b96230 100644 --- a/desktop-widgets/mainwindow.cpp +++ b/desktop-widgets/mainwindow.cpp @@ -1758,7 +1758,7 @@ void MainWindow::importTxtFiles(const QStringList fileNames) QFileInfo check_file(csv); if (check_file.exists() && check_file.isFile()) { - if (parse_txt_file(fileNamePtr.data(), csv) == 0) + if (parse_txt_file(fileNamePtr.data(), csv, &dive_table) == 0) csvFiles += fileNames.at(i); } else { csvFiles += fileNamePtr; |