subsurface/qt-models
Berthold Stoeger 0249e12589 Import: split process_imported_dives() function
Split the process_imported_dives() function in two:
1) process_imported_dives() processes the dives and generates
   a list of dives and trips to be added and removed.
2) add_imported_dives() calls process_imported_dives() and
   does the actual removal / addition of dives and trips.

The goal is to split preparation and actual work, to
make dive import undo-able.

The code adds extra checks to never merge into the same
dive twice, as this would lead to a double-free() bug.
This should in principle never happen, as dives that
compare equal according to is_same_dive() are merged
in the imported-dives list, but perhaps in some pathologival
corner-cases is_same_dive() turns out to be non-transitive.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2019-01-09 20:58:04 -08:00
..
cleanertablemodel.cpp qt-models: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
cleanertablemodel.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
CMakeLists.txt Cleanup: Remove SsrfFilterSortProxyModel 2018-10-11 16:25:32 -07:00
completionmodels.cpp Add SPDX header to Qt models 2017-04-29 13:32:55 -07:00
completionmodels.h Add SPDX header to Qt models 2017-04-29 13:32:55 -07:00
cylindermodel.cpp Cleanup: pass gasmix by value 2018-08-23 05:16:38 -07:00
cylindermodel.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
divecomputerextradatamodel.cpp qt-models: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
divecomputerextradatamodel.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
divecomputermodel.cpp Dive computers: turn QMultiMap into sorted vector 2018-06-17 06:53:13 +09:00
divecomputermodel.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
diveimportedmodel.cpp Import: split process_imported_dives() function 2019-01-09 20:58:04 -08:00
diveimportedmodel.h Import: add trip_table argument to DiveImportedModel::repopulate() 2019-01-09 20:58:04 -08:00
divelistmodel.cpp Cleanup: Make add_dive_to_table local to divelist.c 2019-01-09 20:58:04 -08:00
divelistmodel.h Cleanup: remove getDiveId() functions 2018-12-27 15:19:50 -08:00
divelocationmodel.cpp Dive site: pass pointer-to-dive_site via QVariant 2018-10-29 00:09:31 +00:00
divelocationmodel.h Dive site: remove UUIDs from LocationInformationModel 2018-10-29 00:09:31 +00:00
divepicturemodel.cpp Dive media: put duration on video thumbnails 2018-07-28 15:31:25 -07:00
divepicturemodel.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
diveplannermodel.cpp Undo: make adding of planned dive undo-able 2018-10-11 16:22:27 -07:00
diveplannermodel.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
diveplotdatamodel.cpp qt-models: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
diveplotdatamodel.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
divetripmodel.cpp Dive list: split DiveTripModel into distinct models (tree and list) 2019-01-07 09:33:52 -08:00
divetripmodel.h Dive list: split DiveTripModel into distinct models (tree and list) 2019-01-07 09:33:52 -08:00
filtermodels.cpp Filter for logged/planned dives 2019-01-08 10:39:06 +01:00
filtermodels.h Filter for logged/planned dives 2019-01-08 10:39:06 +01:00
gpslistmodel.cpp Add 'location_t' data structure 2018-10-21 19:55:09 +03:00
gpslistmodel.h Unused code: GpsListModel::addGpsFix() 2018-01-10 16:45:42 +01:00
maplocationmodel.cpp Dive list: don't pass dive_site via uintptr_t through QML 2018-10-29 00:09:31 +00:00
maplocationmodel.h Dive list: don't pass dive_site via uintptr_t through QML 2018-10-29 00:09:31 +00:00
messagehandlermodel.cpp qt-models: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
messagehandlermodel.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
models.cpp Change from gettextFromC::instance()->tr() to gettextFromC::tr(); 2018-06-18 07:42:39 +02:00
models.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
tankinfomodel.cpp equipment: sanitize 'tank_info' loop limits 2018-06-20 09:30:58 +09:00
tankinfomodel.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
treemodel.cpp Cleanup: make DiveTripModel a global object 2018-09-01 07:48:43 -07:00
treemodel.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
weightmodel.cpp equipment: sanitize 'ws_info' loop limits 2018-06-20 09:30:58 +09:00
weightmodel.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
weightsysteminfomodel.cpp equipment: sanitize 'ws_info' loop limits 2018-06-20 09:30:58 +09:00
weightsysteminfomodel.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
yearlystatisticsmodel.cpp Show average max depth in yearly statistics 2018-12-17 12:18:26 +01:00
yearlystatisticsmodel.h Show average max depth in yearly statistics 2018-12-17 12:18:26 +01:00