summaryrefslogtreecommitdiffstats
path: root/map-widget/qmlmapwidgethelper.cpp
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2018-10-08 16:24:41 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2018-10-11 16:25:32 -0700
commitac02854a8aa98dcd6876c9249654ac9e1d949c92 (patch)
tree1d21a1196973b099bbe70daf3d2a87128923eacd /map-widget/qmlmapwidgethelper.cpp
parentdd44dc4ab8fb888dcb3046ae5ecca2b24fe9e44f (diff)
downloadsubsurface-ac02854a8aa98dcd6876c9249654ac9e1d949c92.tar.gz
Map: don't access displayed_dive_site in reloadMapLocations()
MapWidgetHelper::reloadMapLocations() reloads all dive flags of the non-hidden dives plus the one of the currently edited dive. Use the current_dive macro to determine whether this is the current dive site instead of the global displayed_dive_site object. This is part of a series of commits, which makes the map-code independent of the global displayed_dive_site object. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'map-widget/qmlmapwidgethelper.cpp')
-rw-r--r--map-widget/qmlmapwidgethelper.cpp14
1 files changed, 4 insertions, 10 deletions
diff --git a/map-widget/qmlmapwidgethelper.cpp b/map-widget/qmlmapwidgethelper.cpp
index 8164abd3a..adaaf8848 100644
--- a/map-widget/qmlmapwidgethelper.cpp
+++ b/map-widget/qmlmapwidgethelper.cpp
@@ -125,19 +125,13 @@ void MapWidgetHelper::reloadMapLocations()
QVector<uint32_t> locationUuids;
qreal latitude, longitude;
- if (displayed_dive_site.uuid && dive_site_has_gps_location(&displayed_dive_site)) {
- latitude = displayed_dive_site.latitude.udeg * 0.000001;
- longitude = displayed_dive_site.longitude.udeg * 0.000001;
- location = new MapLocation(displayed_dive_site.uuid, QGeoCoordinate(latitude, longitude),
- QString(displayed_dive_site.name));
- locationList.append(location);
- locationNameMap[QString(displayed_dive_site.name)] = location;
- }
for_each_dive(idx, dive) {
- if (dive->hidden_by_filter)
+ // Don't show dive sites of hidden dives, unless this is the currently
+ // displayed (edited) dive.
+ if (dive->hidden_by_filter && dive != current_dive)
continue;
struct dive_site *ds = get_dive_site_for_dive(dive);
- if (!dive_site_has_gps_location(ds) || ds->uuid == displayed_dive_site.uuid || locationUuids.contains(ds->uuid))
+ if (!dive_site_has_gps_location(ds) || locationUuids.contains(ds->uuid))
continue;
latitude = ds->latitude.udeg * 0.000001;
longitude = ds->longitude.udeg * 0.000001;