subsurface/core
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
..
settings qPref: reduce recompiles with every commit 2018-10-27 07:16:01 -07:00
subsurface-qt Helper function to determined planned dives 2019-01-08 10:39:06 +01:00
android.cpp Make device enumeration use the device transport data 2018-08-27 22:10:38 -07:00
btdiscovery.cpp Bluetooth: all states other than HostPoweredOff qualify as valid 2018-12-23 21:43:57 +01:00
btdiscovery.h Bluetooth: add helper to separate BT name and address 2018-10-12 08:22:44 -07:00
checkcloudconnection.cpp prefs: git_local_only is not a preference 2018-09-10 16:26:49 -07:00
checkcloudconnection.h
cloudstorage.cpp core/settings ... : remove qPref* includes in qPref.h 2018-09-11 17:25:00 -07:00
cloudstorage.h prefs: cloud_new_password is not a preference 2018-09-10 16:26:49 -07:00
CMakeLists.txt Dive list: implement proper Qt-model semantics for DiveTripModel 2018-10-11 16:22:27 -07:00
cochran.c Parser: add trip_table parameter to parsing functions 2019-01-09 20:58:04 -08:00
cochran.h
color.cpp Cleanup: silence clang missing braces warning in core/color.cpp 2018-09-01 11:31:18 -07:00
color.h Cleanups to core/color.[c|hpp] 2018-07-18 02:09:15 +03:00
compressibility.r
configuredivecomputer.cpp Actually tie in the new libdivecomputer IO model to open the dive computer device 2018-04-24 17:54:08 -07:00
configuredivecomputer.h
configuredivecomputerthreads.cpp libdivecomputer: remove ifdefs for ancient versions 2018-10-08 23:06:09 +03:00
configuredivecomputerthreads.h
connectionlistmodel.cpp Substring match BT address 2018-10-09 21:04:23 -07:00
connectionlistmodel.h core: add indexOf member to ConnectionListModel 2018-08-11 11:14:22 -07:00
datatrak.c Parser: add trip_table parameter to parsing functions 2019-01-09 20:58:04 -08:00
datatrak.h Cleanup: const-ify functions taking dives and divecomputers 2018-08-23 14:41:01 -07:00
deco.c deco: _really_ make sure the deco state is fully initialized 2018-10-15 20:57:25 -04:00
deco.h Cleanup: const-ify functions taking pointers to events 2018-08-23 05:16:38 -07:00
device.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
device.h Core: remove dive.h from files that don't need it 2018-05-14 10:13:39 -07:00
devicedetails.cpp
devicedetails.h
display.h Make device enumeration use the device transport data 2018-08-27 22:10:38 -07:00
dive.c Import: merge dives trip-wise 2019-01-09 20:58:04 -08:00
dive.h Import: add trip_table argument to DiveImportedModel::repopulate() 2019-01-09 20:58:04 -08:00
divecomputer.cpp core: remove SettingsObjectWrapper and update qPref calls 2018-08-15 16:11:39 -07:00
divecomputer.h Dive computers: turn QMultiMap into sorted vector 2018-06-17 06:53:13 +09:00
divelist.c Import: split process_imported_dives() function 2019-01-09 20:58:04 -08:00
divelist.h Import: split process_imported_dives() function 2019-01-09 20:58:04 -08:00
divelogexportlogic.cpp Statistics: only consider selected dives in HTML export statistics 2018-10-07 17:50:51 +03:00
divelogexportlogic.h
divesite-helper.cpp Dive site: use own copy of taxonomy in dive-site-edit widget 2018-10-13 21:41:41 -04:00
divesite.c Dive sites: don't delete unused dive sites on save 2019-01-07 09:33:24 -08:00
divesite.h Dive sites: don't delete unused dive sites on save 2019-01-07 09:33:24 -08:00
divesitehelpers.cpp Geo lookup: don't pass arguments / result via global object 2018-10-11 16:25:02 -07:00
divesitehelpers.h Geo lookup: don't pass arguments / result via global object 2018-10-11 16:25:02 -07:00
downloadfromdcthread.cpp Import: merge dives trip-wise 2019-01-09 20:58:04 -08:00
downloadfromdcthread.h Import: merge dives trip-wise 2019-01-09 20:58:04 -08:00
equipment.c Cleanup: user properly typed pointers 2018-08-23 05:21:08 -07:00
errorhelper.c Make report_error() reentrant 2018-01-31 14:47:26 +01:00
exif.cpp Coding-style: remove superfluous parentheses 2018-02-17 19:38:52 -08:00
exif.h
file.c Parser: add trip_table parameter to parsing functions 2019-01-09 20:58:04 -08:00
file.h Parser: add trip_table parameter to parsing functions 2019-01-09 20:58:04 -08:00
format.cpp Cleanup: Slightly shorten code in vqasprintf_loc() 2018-04-09 11:29:43 -07:00
format.h Cleanup: Move *_loc formatting functions into new format.cpp file 2018-04-09 11:29:43 -07:00
gas-model.c Cleanup: pass gasmix by value 2018-08-23 05:16:38 -07:00
gaspressures.c Cleanup: const-ify functions taking pointers to events 2018-08-23 05:16:38 -07:00
gaspressures.h
gettext.h
gettextfromc.cpp Localization: make cache thread safe and robust against use-after-free 2018-06-24 20:31:14 +02:00
gettextfromc.h Localization: remove gettextFromC::instance() 2018-06-24 20:31:14 +02:00
git-access.c prefs: git_local_only is not a preference 2018-09-10 16:26:49 -07:00
git-access.h prefs: git_local_only is not a preference 2018-09-10 16:26:49 -07:00
gpslocation.cpp Dive site: replace dive->dive_site_uuid by dive_site 2018-10-29 00:09:31 +00:00
gpslocation.h Add 'location_t' data structure 2018-10-21 19:55:09 +03:00
imagedownloader.cpp Dive media: Extract thumbnails from videos with ffmpeg 2018-07-28 15:31:25 -07:00
imagedownloader.h Dive media: Extract thumbnails from videos with ffmpeg 2018-07-28 15:31:25 -07:00
import-cobalt.c Parser: add trip_table parameter to parsing functions 2019-01-09 20:58:04 -08:00
import-csv.c Parser: add trip_table parameter to parsing functions 2019-01-09 20:58:04 -08:00
import-csv.h Parser: add trip_table parameter to parsing functions 2019-01-09 20:58:04 -08:00
import-divinglog.c Parser: add trip_table parameter to parsing functions 2019-01-09 20:58:04 -08:00
import-shearwater.c Parser: add trip_table parameter to parsing functions 2019-01-09 20:58:04 -08:00
import-suunto.c Parser: add trip_table parameter to parsing functions 2019-01-09 20:58:04 -08:00
ios.cpp Make device enumeration use the device transport data 2018-08-27 22:10:38 -07:00
isocialnetworkintegration.cpp
isocialnetworkintegration.h
libdivecomputer.c Core: add trip_table parameter to trip-functions 2019-01-09 20:58:04 -08:00
libdivecomputer.h qt-ble: add 'get_name()' function to expose the BLE name to libdivecomputer 2018-10-08 00:10:29 +03:00
liquivision.c Parser: add trip_table parameter to parsing functions 2019-01-09 20:58:04 -08:00
load-git.c Core: add trip_table parameter to trip-functions 2019-01-09 20:58:04 -08:00
macos.c macOS: always list 'FTDI' as a serial connection 2018-09-24 18:51:21 +02:00
membuffer.c Add 'location_t' data structure 2018-10-21 19:55:09 +03:00
membuffer.h Add 'location_t' data structure 2018-10-21 19:55:09 +03:00
metadata.cpp Add 'location_t' data structure 2018-10-21 19:55:09 +03:00
metadata.h Add 'location_t' data structure 2018-10-21 19:55:09 +03:00
metrics.cpp
metrics.h
ostctools.c Core: Rename functions to more generic names 2019-01-09 20:58:04 -08:00
parse-xml.c Parser: add trip_table parameter to parsing functions 2019-01-09 20:58:04 -08:00
parse.c Parser: add trip_table parameter to parsing functions 2019-01-09 20:58:04 -08:00
parse.h Parser: add trip_table parameter to parsing functions 2019-01-09 20:58:04 -08:00
planner.c Cleanup: const-ify functions taking pointers to events 2018-08-23 05:16:38 -07:00
planner.h Cleanup: pass gasmix by value 2018-08-23 05:16:38 -07:00
plannernotes.c Planner: fix display of "overlapping dives" message 2018-09-12 14:17:55 -07:00
pluginmanager.cpp Unused code: remove PluginManager::socialNetworkIntegrationPlugins() 2018-01-10 16:45:42 +01:00
pluginmanager.h Unused code: remove PluginManager::socialNetworkIntegrationPlugins() 2018-01-10 16:45:42 +01:00
pref.h Mobile/filtering: add two preferences for filtering 2018-10-23 22:45:30 +01:00
profile.c Undo: select dives after add, remove, merge, split dive commands 2018-10-11 16:22:27 -07:00
profile.h Cleanup: const-ify functions taking pointers to events 2018-08-23 05:16:38 -07:00
qt-ble.cpp qt-ble: add 'get_name()' function to expose the BLE name to libdivecomputer 2018-10-08 00:10:29 +03:00
qt-ble.h qt-ble: add 'get_name()' function to expose the BLE name to libdivecomputer 2018-10-08 00:10:29 +03:00
qt-gui.h core,tests: change qml register function 2018-09-11 17:22:58 -07:00
qt-init.cpp Core: use British translations in South Africa 2018-11-01 09:30:14 -07:00
qthelper.cpp Core: remove count_dives_with_*() functions 2018-12-17 07:33:45 -08:00
qthelper.h Core: move is-single-day-trip and count-shown functions into core 2018-11-23 13:22:24 -08:00
qtserialbluetooth.cpp Core: fix BT on Linux, workaround Qt bug on 5.12.0 2018-12-27 15:15:07 -08:00
save-git.c Core: keep trips in table(s) 2019-01-09 20:58:04 -08:00
save-html.c Core: keep trips in table(s) 2019-01-09 20:58:04 -08:00
save-html.h
save-xml.c Core: keep trips in table(s) 2019-01-09 20:58:04 -08:00
serial_ftdi.c Fix Cressi interface ftdi opening bug 2018-11-18 20:01:28 +02:00
sha1.c
sha1.h
ssrf.h mobile: add timer to measure startup. 2018-05-30 21:47:07 -07:00
statistics.c Show average max depth in yearly statistics 2018-12-17 12:18:26 +01:00
statistics.h Show average max depth in yearly statistics 2018-12-17 12:18:26 +01:00
strndup.h
strtod.c Core: introduce new subsurface-string header 2018-05-14 10:13:39 -07:00
subsurface-string.h Core: don't inline rarely used function 2018-05-14 10:13:39 -07:00
subsurfacestartup.c Mobile/filtering: add two preferences for filtering 2018-10-23 22:45:30 +01:00
subsurfacestartup.h
subsurfacesysinfo.cpp
subsurfacesysinfo.h
taxonomy.c Dive site: use own copy of taxonomy in dive-site-edit widget 2018-10-13 21:41:41 -04:00
taxonomy.h Dive site: use own copy of taxonomy in dive-site-edit widget 2018-10-13 21:41:41 -04:00
time.c
uemis-downloader.c Core: add trip_table parameter to trip-functions 2019-01-09 20:58:04 -08:00
uemis.c Dive site: use pointer instead of uuid in uemis_helper 2018-10-29 00:09:31 +00:00
uemis.h Dive site: use pointer instead of uuid in uemis_helper 2018-10-29 00:09:31 +00:00
units.h Add 'location_t' data structure 2018-10-21 19:55:09 +03:00
unix.c Make device enumeration use the device transport data 2018-08-27 22:10:38 -07:00
version.c
version.h
videoframeextractor.cpp Dive media: Extract thumbnails from videos with ffmpeg 2018-07-28 15:31:25 -07:00
videoframeextractor.h Dive media: Extract thumbnails from videos with ffmpeg 2018-07-28 15:31:25 -07:00
webservice.h
windows.c windows.c: fix wrong usage of wcslen() for utf8 conversation 2018-12-29 18:27:21 +01:00
windowtitleupdate.cpp Cleanup: Make WindowsTitleUpdate a global object 2018-07-30 13:55:23 -07:00
windowtitleupdate.h Cleanup: Make WindowsTitleUpdate a global object 2018-07-30 13:55:23 -07:00
worldmap-options.h
worldmap-save.c Add 'location_t' data structure 2018-10-21 19:55:09 +03:00
worldmap-save.h
xmp_parser.cpp Metadata: rudimentary support for XMP metadataa in MP4-based videos 2018-09-25 14:59:14 -07:00
xmp_parser.h Metadata: rudimentary support for XMP metadataa in MP4-based videos 2018-09-25 14:59:14 -07:00