subsurface/core
Berthold Stoeger 4d06ddd723 Dive sites: don't delete unused dive sites on save
Unused dive sites were deleted on save. This clashed with the undo
system in the following scenario:

1) Delete single-use dive site.
2) Save (dive site deleted)
3) Undo (reference to freed dive site)

Therefore, as a quick-fix, keep the referenced dive site around.
Note that this also means that empty dive sites must not be
deleted, as it might refer to a dive in the undo system. Instead
only clear references to empty dive sites in the global dive
table. Factor this functionality out, as it was common to the
XML and git savers.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2019-01-07 09:33:24 -08:00
..
settings qPref: reduce recompiles with every commit 2018-10-27 07:16:01 -07:00
subsurface-qt Cleanup: remove EMPTY_DIVE_STRING 2018-11-24 11:01:20 -08: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 Remove self-include of core/checkcloudconnection.h 2017-12-06 02:23:47 +01:00
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 Core: remove dive->downloaded flag 2018-10-06 19:47:06 -07:00
cochran.h Cochran import: better support for older models 2017-05-31 21:53:00 -07:00
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 Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
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 Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
configuredivecomputerthreads.cpp libdivecomputer: remove ifdefs for ancient versions 2018-10-08 23:06:09 +03:00
configuredivecomputerthreads.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
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 Dive site: replace dive->dive_site_uuid by dive_site 2018-10-29 00:09:31 +00: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 Implement OSTC4 specific settings 2017-05-04 10:50:15 -07:00
devicedetails.h Implement OSTC4 specific settings 2017-05-04 10:50:15 -07:00
display.h Make device enumeration use the device transport data 2018-08-27 22:10:38 -07:00
dive.c Core: remove count_dives_with_*() functions 2018-12-17 07:33:45 -08:00
dive.h Initial support for Shearwater Cloud 2018-12-29 21:32:55 +02: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 Cleanup: remove unused parameter was_autogen 2018-12-23 20:00:45 +01:00
divelist.h Cleanup: remove unused parameter was_autogen 2018-12-23 20:00:45 +01:00
divelogexportlogic.cpp Statistics: only consider selected dives in HTML export statistics 2018-10-07 17:50:51 +03:00
divelogexportlogic.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
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: unglobalize downloadTable 2018-12-17 07:37:32 -08:00
downloadfromdcthread.h Import: unglobalize downloadTable 2018-12-17 07:37:32 -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 Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
file.c Initial support for Shearwater Cloud 2018-12-29 21:32:55 +02:00
file.h Parser: parse text-based files into arbitrary table 2018-09-28 15:06:00 -07: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 Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
gettext.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
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 Dive site: replace dive->dive_site_uuid by dive_site 2018-10-29 00:09:31 +00:00
import-csv.c Import: remove unnecessary processing of dives in DAN import 2018-10-04 07:37:28 +02:00
import-csv.h Parser: parse text-based files into arbitrary table 2018-09-28 15:06:00 -07:00
import-divinglog.c Dive site: replace dive->dive_site_uuid by dive_site 2018-10-29 00:09:31 +00:00
import-shearwater.c Use state structure for sample rate info 2019-01-03 06:56:48 +02:00
import-suunto.c Parser: make parser (mostly) reentrant 2018-10-23 08:06:17 +01:00
ios.cpp Make device enumeration use the device transport data 2018-08-27 22:10:38 -07:00
isocialnetworkintegration.cpp Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
isocialnetworkintegration.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
libdivecomputer.c Import: unglobalize downloadTable 2018-12-17 07:37:32 -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 Dive site: replace dive->dive_site_uuid by dive_site 2018-10-29 00:09:31 +00:00
load-git.c Git parser: don't produce user-visible error on git parsing 2018-11-21 12:45:29 -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 Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
metrics.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
ostctools.c Core: introduce new subsurface-string header 2018-05-14 10:13:39 -07:00
parse-xml.c Core: replace tripflag by notrip boolean 2018-11-20 08:14:54 -08:00
parse.c Use state structure for sample rate info 2019-01-03 06:56:48 +02:00
parse.h Use state structure for sample rate info 2019-01-03 06:56:48 +02: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 Dive sites: don't delete unused dive sites on save 2019-01-07 09:33:24 -08:00
save-html.c Dive list: replace dive-list of trips by a table 2018-11-18 16:50:09 -08:00
save-html.h Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
save-xml.c Dive sites: don't delete unused dive sites on save 2019-01-07 09:33:24 -08:00
serial_ftdi.c Fix Cressi interface ftdi opening bug 2018-11-18 20:01:28 +02:00
sha1.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
sha1.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
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 Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
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 Fix ownership issues in preferences code 2017-11-25 07:41:09 -08:00
subsurfacesysinfo.cpp Random whitespace cleanup 2017-05-27 11:07:20 -07:00
subsurfacesysinfo.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
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 Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
uemis-downloader.c Cleanup: remove unused parameter was_autogen 2018-12-23 20:00:45 +01: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 Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
version.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
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 Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
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 Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
worldmap-save.c Add 'location_t' data structure 2018-10-21 19:55:09 +03:00
worldmap-save.h Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
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