From 23cf85e89c7f09281bedd7e704c867049c84cbe8 Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Mon, 29 Apr 2019 07:47:57 +0200 Subject: Map: don't reload map when in edit mode During edit mode, we could get spurious reload() requests owing to tabs being hidden. This led to undefined behavior: In some cases entering dive site edit mode would show all dive sites, in some only the dive site of the currently edited dive. Therefore, refuse to reload the map while in edit mode. The corresponding flag already exists. Partially fixes #2076 Reported-by: Doug Junkins Signed-off-by: Berthold Stoeger --- desktop-widgets/mapwidget.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'desktop-widgets') diff --git a/desktop-widgets/mapwidget.cpp b/desktop-widgets/mapwidget.cpp index b06100c50..bbdf89de2 100644 --- a/desktop-widgets/mapwidget.cpp +++ b/desktop-widgets/mapwidget.cpp @@ -93,6 +93,8 @@ void MapWidget::reload() void MapWidget::endGetDiveCoordinates() { CHECK_IS_READY_RETURN_VOID(); + + skipReload = false; m_mapHelper->exitEditMode(); } @@ -100,6 +102,10 @@ void MapWidget::prepareForGetDiveCoordinates(struct dive_site *ds) { CHECK_IS_READY_RETURN_VOID(); m_mapHelper->enterEditMode(ds); + + // Ignore any reload signals during edit mode to avoid showing all flags when in edit mode. + // This can happen for example when the filter is reset. + skipReload = true; } void MapWidget::selectedDivesChanged(QList list) -- cgit v1.2.3-70-g09d2