From 58f2e5f77c2faaf4c2f75767ee8fde67cc0931ac Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Sat, 30 Mar 2019 18:39:27 +0100 Subject: Undo: use QUndoStack::isClean() to determine unsaved changes Properly implement the unsaved-changes flag(s). Since we currently have two kinds of changes, there are two flags: 1) dive_list_changed in divelist.c marks non-undoable changes. This flag is only cleared on save or load. 2) QUndoStack::isClean() is used to determine the state of undoable changes. Every time the user returns to the state where they saved, this flag is cleared. Signed-off-by: Berthold Stoeger --- core/divelist.c | 2 ++ core/divesitehelpers.cpp | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'core') diff --git a/core/divelist.c b/core/divelist.c index 635fa0b6e..8881aceeb 100644 --- a/core/divelist.c +++ b/core/divelist.c @@ -20,6 +20,8 @@ #include "git-access.h" #include "table.h" +/* This flag is set to true by operations that are not implemented in the + * undo system. It is therefore only cleared on save and load. */ static bool dive_list_changed = false; bool autogroup = false; diff --git a/core/divesitehelpers.cpp b/core/divesitehelpers.cpp index 10aab071b..6093c890c 100644 --- a/core/divesitehelpers.cpp +++ b/core/divesitehelpers.cpp @@ -108,7 +108,6 @@ void reverseGeoLookup(degrees_t latitude, degrees_t longitude, taxonomy_data *ta taxonomy->category[ri].category = TC_ADMIN_L3; taxonomy->nr++; } - mark_divelist_changed(true); } else { report_error("geonames.org did not provide reverse lookup information"); qDebug() << "no reverse geo lookup; geonames returned\n" << fullReply; @@ -157,7 +156,6 @@ void reverseGeoLookup(degrees_t latitude, degrees_t longitude, taxonomy_data *ta if (idx == taxonomy->nr) taxonomy->nr++; } - mark_divelist_changed(true); } } else { report_error("timeout accessing geonames.org"); -- cgit v1.2.3-70-g09d2