diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2018-10-08 16:24:41 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2018-10-11 16:25:32 -0700 |
commit | ac02854a8aa98dcd6876c9249654ac9e1d949c92 (patch) | |
tree | 1d21a1196973b099bbe70daf3d2a87128923eacd /map-widget/qmlmapwidgethelper.cpp | |
parent | dd44dc4ab8fb888dcb3046ae5ecca2b24fe9e44f (diff) | |
download | subsurface-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.cpp | 14 |
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; |