summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md1
-rw-r--r--desktop-widgets/locationinformation.cpp8
2 files changed, 8 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 032d55791..be63cb75d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,4 @@
+Desktop: register changes when clicking "done" on dive-site edit screen
Mobile: re-enable GPS location service icon in global drawer
Mobile: add support for editing the dive number of a dive
Desktop: make dive replanning undoable
diff --git a/desktop-widgets/locationinformation.cpp b/desktop-widgets/locationinformation.cpp
index 3a0d2f442..4f1241d82 100644
--- a/desktop-widgets/locationinformation.cpp
+++ b/desktop-widgets/locationinformation.cpp
@@ -189,13 +189,19 @@ void LocationInformationWidget::diveSiteDeleted(struct dive_site *ds, int)
void LocationInformationWidget::acceptChanges()
{
- diveSite = nullptr;
closeDistance = 0;
MainWindow::instance()->diveList->setEnabled(true);
MainWindow::instance()->setEnabledToolbar(true);
MainWindow::instance()->setApplicationState(ApplicationState::Default);
MultiFilterSortModel::instance()->stopFilterDiveSites();
+
+ // Subtlety alert: diveSite must be cleared *after* exiting the dive-site mode.
+ // Exiting dive-site mode removes the focus from the active widget and
+ // thus fires the corresponding editingFinished signal, which in turn creates
+ // an undo-command. To set an undo-command, the widget has to know the
+ // currently edited dive-site.
+ diveSite = nullptr;
}
void LocationInformationWidget::initFields(dive_site *ds)