diff options
Diffstat (limited to 'desktop-widgets/downloadfromdivecomputer.cpp')
-rw-r--r-- | desktop-widgets/downloadfromdivecomputer.cpp | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/desktop-widgets/downloadfromdivecomputer.cpp b/desktop-widgets/downloadfromdivecomputer.cpp index a14a8a665..cf3aad492 100644 --- a/desktop-widgets/downloadfromdivecomputer.cpp +++ b/desktop-widgets/downloadfromdivecomputer.cpp @@ -525,26 +525,13 @@ void DownloadFromDCWidget::on_ok_clicked() if (currentState != DONE && currentState != ERRORED) return; - // delete non-selected dives - diveImportedModel->deleteDeselected(); - - // TODO: use structured bindings once we go C++17 - std::pair<struct dive_table, struct dive_site_table> tables = diveImportedModel->consumeTables(); - if (tables.first.nr > 0) { - auto data = diveImportedModel->thread.data(); - int flags = IMPORT_IS_DOWNLOADED; - if (preferDownloaded()) - flags |= IMPORT_PREFER_IMPORTED; - if (ui.createNewTrip->isChecked()) - flags |= IMPORT_ADD_TO_NEW_TRIP; - Command::importDives(&tables.first, nullptr, &tables.second, flags, data->devName()); - } else { - clear_dive_site_table(&tables.second); - } - // The dives and dive sites have been consumed, but the arrays of the tables - // still exist. Free them. - free(tables.first.dives); - free(tables.second.dive_sites); + int flags = IMPORT_IS_DOWNLOADED; + if (preferDownloaded()) + flags |= IMPORT_PREFER_IMPORTED; + if (ui.createNewTrip->isChecked()) + flags |= IMPORT_ADD_TO_NEW_TRIP; + + diveImportedModel->recordDives(flags); if (ostcFirmwareCheck && currentState == DONE) ostcFirmwareCheck->checkLatest(this, diveImportedModel->thread.data()->internalData()); |