diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2018-12-23 12:46:45 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-01-09 20:58:04 -0800 |
commit | 1593f2ebad25244fefabe606b32ee505d4d6087d (patch) | |
tree | a47251b4247cbe0c2b5b2fa568179f8abc4c25f9 /desktop-widgets/downloadfromdivecomputer.cpp | |
parent | f542dc4030dda5dac1da1cc928f7a40a50919c4d (diff) | |
download | subsurface-1593f2ebad25244fefabe606b32ee505d4d6087d.tar.gz |
Import: merge dives trip-wise
The old way of merging log-files was not well defined: Trips
were recognized as the same if and only if the first dives
started at the same instant. Later dives did not matter.
Change this to merge dives if they are overlapping.
Moreover, on parsing and download generate trips in a separate
trip-table.
This will be fundamental for undo of dive-import: Firstly, we
don't want to mix trips of imported and not-yet imported dives.
Secondly, by merging trip-wise, we can autogroup the dives
in the import-data to trips and merge these at once. This will
simplify the code to decide to which trip dives should be
autogrouped.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets/downloadfromdivecomputer.cpp')
-rw-r--r-- | desktop-widgets/downloadfromdivecomputer.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/desktop-widgets/downloadfromdivecomputer.cpp b/desktop-widgets/downloadfromdivecomputer.cpp index 4e4c6a43c..601c0d0d4 100644 --- a/desktop-widgets/downloadfromdivecomputer.cpp +++ b/desktop-widgets/downloadfromdivecomputer.cpp @@ -508,6 +508,7 @@ void DownloadFromDCWidget::on_ok_clicked() if (currentState != DONE && currentState != ERROR) return; struct dive_table *table = thread.table(); + struct trip_table *trips = thread.trips(); // delete non-selected dives int total = table->nr; @@ -524,7 +525,7 @@ void DownloadFromDCWidget::on_ok_clicked() // remember the last downloaded dive (on most dive computers this will be the chronologically // first new dive) and select it again after processing all the dives int uniqId = table->dives[table->nr - 1]->id; - process_imported_dives(table, preferDownloaded(), true); + process_imported_dives(table, trips, preferDownloaded(), true); Command::clear(); // after process_imported_dives does any merging or resorting needed, we need // to recreate the model for the dive list so we can select the newest dive |