subsurface/core
Linus Torvalds d2b8088cd8 Actually create a UUID when creating a dive site during download
The existing code creates a deterministic ID (not exactly "unique") in order to
help us avoid merge conflicts in git-storage mode. But as a side effect, if we
re-download the same dive twice from a dive computer that supports GPS (right
now only the Garmin Descent Mk1) we are guaranteed to create the same dive site
uuid when we do this. So when we download a dive - whether we will actually
*use* that dive later or not - we will be filling in the dive site information
with the data we got from the dive computer.

... and in the process we will be overwriting any data that was filled in
manually. The name of the dive site, but also possibly even the GPS of the dive
site (maybe the user decided to edit that using the map, because while the
automatically downloaded GPS data was "correct", maybe the user wanted to
change it to be the actual under-water location using the satellite data,
rather than the place where you started the dive or where you surfaced).

In order to avoid this collision, this patch just makes the libdivecomputer
download not use the dive time, but "time of download" for the dive site time,
and thus effectively generate a new uuid for every download.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-09-22 14:17:24 -07:00
..
settings Mobile: always update the preferences when set_unit_system is called 2018-09-19 14:41:34 -07:00
subsurface-qt Cleanup: pass gasmix by value 2018-08-23 05:16:38 -07:00
android.cpp Make device enumeration use the device transport data 2018-08-27 22:10:38 -07:00
btdiscovery.cpp BLE: add Teric to list of auto-detected Shearwater computers 2018-09-12 14:00:49 -07:00
btdiscovery.h Cleanup: Use QString as parameter for [get|save]BtDeviceInfo() 2018-02-26 08:52:34 +01: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 core/tests: merge Animations and add vars. to qPrefDisplay 2018-08-25 11:49:47 -07:00
cochran.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -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 core: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
configuredivecomputerthreads.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
connectionlistmodel.cpp core: add indexOf member to ConnectionListModel 2018-08-11 11:14:22 -07:00
connectionlistmodel.h core: add indexOf member to ConnectionListModel 2018-08-11 11:14:22 -07:00
datatrak.c Core: remove dive.h from files that don't need it 2018-05-14 10:13:39 -07:00
datatrak.h Cleanup: const-ify functions taking dives and divecomputers 2018-08-23 14:41:01 -07:00
deco.c Cleanup: const-ify functions taking pointers to events 2018-08-23 05:16:38 -07: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 Dive media: on import read metadata only once 2018-09-19 14:44:34 -07:00
dive.h Dive media: on import read metadata only once 2018-09-19 14:44:34 -07: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 Profile: fix SAC calculation for air dives 2018-09-10 14:23:59 -07:00
divelist.h Cleanup: const-ify functions taking dives and divecomputers 2018-08-23 14:41:01 -07:00
divelogexportlogic.cpp divelogexportlogic: show warning on missing 'theme' folder 2018-08-17 00:58:01 +02:00
divelogexportlogic.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
divesite-helper.cpp Translations: unify gettextFromC::tr() and QObject::tr() 2018-07-04 05:33:31 +08:00
divesite.c core: remove clang warning in divesite.c 2018-07-11 12:59:33 +02:00
divesite.h Tags for geo references: Nicer look, translations and warning message 2017-10-17 06:12:07 -04:00
divesitehelpers.cpp Cleanup: fold core/helpers.h into core/qthelper.h 2018-06-04 08:50:10 -07:00
divesitehelpers.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
downloadfromdcthread.cpp Make device enumeration use the device transport data 2018-08-27 22:10:38 -07:00
downloadfromdcthread.h Make device enumeration use the device transport data 2018-08-27 22:10:38 -07: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 Parse: pass dive_table argument to parse_file() 2018-08-23 10:17:12 -07:00
file.h Parse: pass dive_table argument to parse_file() 2018-08-23 10:17:12 -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 core: connect qPref..::time_thresholdChanged to setGpsTimeThreshold 2018-09-12 20:18:32 -07:00
gpslocation.h cleanup[4/6], mobile: remove superfluous code from gpslocation 2018-09-11 15:38:20 -07: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 core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
import-csv.c Core: introduce new subsurface-string header 2018-05-14 10:13:39 -07:00
import-csv.h Make a few functions of static linkage 2018-01-08 09:52:55 +02:00
import-divinglog.c Cleanup: pass gasmix by value 2018-08-23 05:16:38 -07:00
import-shearwater.c Remove unnecessary {} 2018-05-27 23:18:01 +03:00
import-suunto.c DM5 import: support for larger sample size 2018-06-15 17:45:33 -07: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 Actually create a UUID when creating a dive site during download 2018-09-22 14:17:24 -07:00
libdivecomputer.h Add support for opening a DC_TRANSPORT_USBSTORAGE stream 2018-08-27 22:11:05 -07:00
liquivision.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
load-git.c cleanup[1/6]: do not set userid/save_userid_local from storage 2018-09-11 15:38:20 -07:00
macos.c Make device enumeration use the device transport data 2018-08-27 22:10:38 -07:00
membuffer.c Localization: Make Qt's locale-aware formatting accessible from C 2018-03-05 16:23:55 +01:00
membuffer.h Add usage documentation for membuffer helper functions 2018-04-10 08:18:32 -07:00
metadata.cpp Cleanup: remove silly " != 0" expression 2018-08-01 15:30:54 +03:00
metadata.h Metadata: extract duration fom QuickTime/MP4-style containers 2018-07-14 08:32:30 +02: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 DLF import: Remove old debug print 2018-09-12 14:14:14 -07:00
parse.c cleanup[1/6]: do not set userid/save_userid_local from storage 2018-09-11 15:38:20 -07:00
parse.h Parser: move match() into core/parse-xml.c 2018-08-30 13:32:09 -07: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 core/tests: change short to int in pref.h 2018-09-11 17:22:58 -07:00
profile.c Profile: fix SAC calculation for air dives 2018-09-10 14:23:59 -07:00
profile.h Cleanup: const-ify functions taking pointers to events 2018-08-23 05:16:38 -07:00
qt-ble.cpp Garmin devices - like Shearwater - want random BLE addressing 2018-09-06 18:35:18 -07:00
qt-ble.h Convert our custom IO model to new libdivecomputer IO model 2018-04-24 17:54:08 -07:00
qt-gui.h core,tests: change qml register function 2018-09-11 17:22:58 -07:00
qt-init.cpp Set desktop file name to avoid a broken icon under KDE Wayland 2018-09-09 18:44:40 -07:00
qthelper.cpp core: remove QSettings from qthelper 2018-08-25 11:49:47 -07:00
qthelper.h For media file open dialog add different file filters 2018-07-15 09:38:12 -07:00
qtserialbluetooth.cpp Make sure our libdivecomputer custom IO interfaces have sleep functions 2018-07-13 11:25:38 -07:00
save-git.c cleanup[3/6]: do not save the userid any more 2018-09-11 15:38:20 -07:00
save-html.c Cleanup: constify get_units() 2018-09-07 11:03:30 -07:00
save-html.h Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
save-xml.c Optional anonymization upon export 2018-09-13 08:16:54 -07:00
serial_ftdi.c serial_ftdi: use Sleep() on Win32 2018-09-12 17:18:47 -07: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 Cleanup: const-ify functions taking dives and divecomputers 2018-08-23 14:41:01 -07:00
statistics.h Cleanup: fold core/helpers.h into core/qthelper.h 2018-06-04 08:50:10 -07: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 cleanup[6/6]: remove actual preferences 2018-09-11 15:38:20 -07: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 Fix two bugs in taxonomy_set_country 2017-10-07 08:16:53 -07:00
taxonomy.h Add taxonomy helper functions 2017-10-04 08:05:09 -07:00
time.c Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
uemis-downloader.c Core: introduce new subsurface-string header 2018-05-14 10:13:39 -07:00
uemis.c Core: remove dive.h from files that don't need it 2018-05-14 10:13:39 -07:00
uemis.h Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
units.h core: removed clang warnings from units.h 2018-05-18 21:27:37 +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 core/windows.c: write logs to the user path 2018-09-03 13:29:03 -07: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 Core: remove dive.h from files that don't need it 2018-05-14 10:13:39 -07:00
worldmap-save.h Add SPDX header to core C files 2017-04-29 13:32:55 -07:00