summaryrefslogtreecommitdiffstats
path: root/desktop-widgets
diff options
context:
space:
mode:
Diffstat (limited to 'desktop-widgets')
-rw-r--r--desktop-widgets/locationinformation.cpp8
1 files changed, 7 insertions, 1 deletions
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)