subsurface/core
Berthold Stoeger 6f574c53a3 Undo: implement undo of dive site editing
This one is a bit more tricky. There are two modes: set dive site
and set newly created dive site. This is realized using an OO model
with derived classed. Quite convoluted - but it seems to work.

Moreover, editing a dive site is not simply setting a value,
but the list of dives in a dive site has to be kept up to date.

Finally, we have to inform the dive site list of the changed
number of dives. Therefore add a new signal diveSiteDivesChanged.
To send only one signal per dive site, hook into the undo() and
redo() functions and call the functions of the base class there.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2019-04-12 18:19:07 +03:00
..
settings use the default constructor for empty QString and QByteArray constants 2019-04-12 12:59:17 +03:00
subsurface-qt Undo: implement undo of dive site editing 2019-04-12 18:19:07 +03:00
android.cpp Make device enumeration use the device transport data 2018-08-27 22:10:38 -07:00
btdiscovery.cpp get rid of some foreach and Q_FOREACH constructs 2019-04-12 12:59:17 +03:00
btdiscovery.h Mobile: only show dive computers in the Bluetooth connection list 2019-02-14 09:05:58 -08:00
checkcloudconnection.cpp get rid of some foreach and Q_FOREACH constructs 2019-04-12 12:59:17 +03:00
checkcloudconnection.h get rid of some foreach and Q_FOREACH constructs 2019-04-12 12:59:17 +03:00
cloudstorage.cpp get rid of some foreach and Q_FOREACH constructs 2019-04-12 12:59:17 +03:00
cloudstorage.h get rid of some foreach and Q_FOREACH constructs 2019-04-12 12:59:17 +03:00
CMakeLists.txt Export profile data 2019-04-04 09:33:56 -07:00
cochran.c Cleanup: remove "sha1.h" include in "dive.h" 2019-04-12 18:19:07 +03: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 ConfigureDiveComputer::saveXMLBackup(): factor out writing gas details 2019-03-27 07:36:33 -07:00
configuredivecomputer.h
configuredivecomputerthreads.cpp Misc: replace some FIXME comments 2019-03-19 09:56:48 -07:00
configuredivecomputerthreads.h
connectionlistmodel.cpp slightly optimize ConnectionListModel 2019-03-27 07:36:33 -07:00
connectionlistmodel.h slightly optimize ConnectionListModel 2019-03-27 07:36:33 -07:00
datatrak.c Dive site: add dive site ref-counting 2019-04-12 18:19:07 +03:00
datatrak.h Cleanup: const-ify functions taking dives and divecomputers 2018-08-23 14:41:01 -07:00
deco.c Core: cast before multiplication to avoid potential overflow 2019-03-17 15:11:31 -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
devicedetails.h
display.h Make device enumeration use the device transport data 2018-08-27 22:10:38 -07:00
dive.c Dive site: add dive site ref-counting 2019-04-12 18:19:07 +03:00
dive.h Pedantic: K are an absolute scale, which are not given in degrees 2019-04-12 18:19:07 +03: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: move table-macros into own header 2019-04-12 18:19:07 +03:00
divelist.h Dive site: inform model of dive site addition / deletion 2019-04-12 18:19:07 +03:00
divelogexportlogic.cpp avoid duplicate and inconsistent applying of QDir::separator() 2019-03-27 07:36:33 -07:00
divelogexportlogic.h avoid duplicate and inconsistent applying of QDir::separator() 2019-03-27 07:36:33 -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 Undo: make dive site merging undoable 2019-04-12 18:19:07 +03:00
divesite.h Undo: make dive site merging undoable 2019-04-12 18:19:07 +03: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 Undo: make undo-system dive site-aware 2019-04-12 18:19:07 +03:00
downloadfromdcthread.h Dive sites: prepare for dive site ref-counting 2019-04-12 18:19:07 +03:00
equipment.c Cleanup: user properly typed pointers 2018-08-23 05:21:08 -07:00
errorhelper.c Cleanup: move declaration of get_stylesheet() to qthelper.h 2019-04-12 18:19:07 +03:00
exif.cpp Coding-style: remove superfluous parentheses 2018-02-17 19:38:52 -08:00
exif.h
file.c Cleanup: move parse-function declarations out of "dive.h" 2019-04-12 18:19:07 +03:00
file.h Cleanup: move parse-function declarations out of "dive.h" 2019-04-12 18:19:07 +03: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 Cleanup: remove "sha1.h" include in "dive.h" 2019-04-12 18:19:07 +03:00
git-access.h prefs: git_local_only is not a preference 2018-09-10 16:26:49 -07:00
gpslocation.cpp Dive site: add dive site ref-counting 2019-04-12 18:19:07 +03:00
gpslocation.h Add 'location_t' data structure 2018-10-21 19:55:09 +03:00
imagedownloader.cpp Core: remove variable name conflict 2019-03-18 19:40:32 -07:00
imagedownloader.h Profile: add "synchronous" mode for picture plotting 2019-02-07 16:06:43 +01:00
import-cobalt.c Dive site: add dive site ref-counting 2019-04-12 18:19:07 +03:00
import-csv.c Parser: parse into custom dive site table 2019-04-12 18:19:07 +03:00
import-csv.h Parser: parse into custom dive site table 2019-04-12 18:19:07 +03:00
import-divinglog.c Dive site: add dive site ref-counting 2019-04-12 18:19:07 +03:00
import-shearwater.c Parser: parse into custom dive site table 2019-04-12 18:19:07 +03:00
import-suunto.c Parser: parse into custom dive site table 2019-04-12 18:19:07 +03:00
ios.cpp Make device enumeration use the device transport data 2018-08-27 22:10:38 -07:00
libdivecomputer.c Dive site: add dive site ref-counting 2019-04-12 18:19:07 +03:00
libdivecomputer.h Parser: parse into custom dive site table 2019-04-12 18:19:07 +03:00
liquivision.c Dive site: add dive site ref-counting 2019-04-12 18:19:07 +03:00
load-git.c Dive site: add dive site ref-counting 2019-04-12 18:19:07 +03:00
macos.c macOS: always list 'FTDI' as a serial connection 2018-09-24 18:51:21 +02:00
membuffer.c Cleanup: unconstify string argument to add_to_string() 2019-03-27 13:58:15 +01:00
membuffer.h Cleanup: unconstify string argument to add_to_string() 2019-03-27 13:58:15 +01: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 Parser: parse into custom dive site table 2019-04-12 18:19:07 +03:00
parse-xml.c Dive site: add dive site ref-counting 2019-04-12 18:19:07 +03:00
parse.c Dive site: add dive site ref-counting 2019-04-12 18:19:07 +03:00
parse.h Cleanup: move parse-function declarations out of "dive.h" 2019-04-12 18:19:07 +03:00
planner.c Make sure surface air is not considered a deco gas 2019-03-29 06:51:12 -07:00
planner.h Cleanup: pass gasmix by value 2018-08-23 05:16:38 -07:00
plannernotes.c Show a bit of surface degassing in the planner 2019-03-29 06:51:12 -07:00
pref.h Add UI element for final surface segment in planner 2019-03-29 06:51:12 -07:00
profile.c Show a bit of surface degassing in the planner 2019-03-29 06:51:12 -07:00
profile.h Include surface GF in infobox 2019-02-05 14:18:14 +01:00
qt-ble.cpp use qDeleteAll() 2019-04-12 12:59:17 +03:00
qt-ble.h get rid of some foreach and Q_FOREACH constructs 2019-04-12 12:59:17 +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 optimize selectedDivesGasUsed() 2019-04-12 12:59:17 +03:00
qthelper.h Cleanup: move declaration of get_stylesheet() to qthelper.h 2019-04-12 18:19:07 +03:00
qtserialbluetooth.cpp drop support for Qt 5.4 and before 2019-03-27 07:36:33 -07:00
save-git.c Dive sites: prepare for dive site ref-counting 2019-04-12 18:19:07 +03:00
save-html.c Dive sites: prepare for dive site ref-counting 2019-04-12 18:19:07 +03:00
save-html.h
save-profiledata.c Export profile data 2019-04-04 09:33:56 -07:00
save-profiledata.h Export profile data 2019-04-04 09:33:56 -07:00
save-xml.c Cleanup: macroize dive site table functions, keep table sorted 2019-04-12 18:19:07 +03: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 Add backend support for statistics by depth and temperature 2019-03-12 00:53:51 +01:00
statistics.h Add backend support for statistics by depth and temperature 2019-03-12 00:53:51 +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 Add UI element for final surface segment in planner 2019-03-29 06:51:12 -07:00
subsurfacestartup.h Fix ownership issues in preferences code 2017-11-25 07:41:09 -08:00
subsurfacesysinfo.cpp drop support for Qt 5.4 and before 2019-03-27 07:36:33 -07:00
subsurfacesysinfo.h drop support for Qt 5.4 and before 2019-03-27 07:36:33 -07:00
table.h Dive site: inform model of dive site addition / deletion 2019-04-12 18:19:07 +03: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
uemis-downloader.c Dive site: add dive site ref-counting 2019-04-12 18:19:07 +03:00
uemis.c Dive sites: prepare for dive site ref-counting 2019-04-12 18:19:07 +03:00
uemis.h Dive site: use pointer instead of uuid in uemis_helper 2018-10-29 00:09:31 +00:00
units.h Pedantic: K are an absolute scale, which are not given in degrees 2019-04-12 18:19:07 +03:00
unix.c Don't allow empty username for git 2019-01-16 02:38:30 +01: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 Dive sites: prepare for dive site ref-counting 2019-04-12 18:19:07 +03:00
worldmap-save.h
xmp_parser.cpp Desktop: fix yet another variable name conflict 2019-03-18 19:40:32 -07:00
xmp_parser.h Metadata: rudimentary support for XMP metadataa in MP4-based videos 2018-09-25 14:59:14 -07:00