diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2018-10-08 21:16:40 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2018-10-08 13:29:51 -0700 |
commit | 0aef04352a3210a6024f860758af466ea774dd5e (patch) | |
tree | 8758b8080f172bb010f249950c3ebc7e225f8819 /desktop-widgets/mapwidget.cpp | |
parent | 1c8b73b36f528bf8d2765a1c064980b1e2022650 (diff) | |
download | subsurface-0aef04352a3210a6024f860758af466ea774dd5e.tar.gz |
Map: zoom on dive sites when flipping through dive site list
The dive site list was connected to centerOnDiveSite(). Apparently,
the currently selected dive site should have been shown in the map.
Yet, this never worked, because the actual dive site of the selected
dive had precedence in centerOnDiveSite().
It seems that centerOnDiveSite() had actually to purposes:
1) center on the passed in dive site
2) center on the dive sites of the selected dives
Therefore, split this function in two separate functions for
each of these use-cases. This allows us to remove some pre-processor
magic (mobile vs. desktop) and to remove a parameter from the
MainTab::diveSiteChanged() signal.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets/mapwidget.cpp')
-rw-r--r-- | desktop-widgets/mapwidget.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/desktop-widgets/mapwidget.cpp b/desktop-widgets/mapwidget.cpp index 917b1b2c7..a940cdb39 100644 --- a/desktop-widgets/mapwidget.cpp +++ b/desktop-widgets/mapwidget.cpp @@ -50,6 +50,13 @@ void MapWidget::doneLoading(QQuickWidget::Status status) this, SLOT(coordinatesChangedLocal())); } +void MapWidget::centerOnSelectedDiveSite() +{ + CHECK_IS_READY_RETURN_VOID(); + if (!skipReload) + m_mapHelper->centerOnSelectedDiveSite(); +} + void MapWidget::centerOnDiveSite(struct dive_site *ds) { CHECK_IS_READY_RETURN_VOID(); @@ -60,9 +67,9 @@ void MapWidget::centerOnDiveSite(struct dive_site *ds) void MapWidget::centerOnIndex(const QModelIndex& idx) { CHECK_IS_READY_RETURN_VOID(); - struct dive_site *ds = get_dive_site_by_uuid(idx.model()->index(idx.row(), 0).data().toInt()); + struct dive_site *ds = get_dive_site_by_uuid(idx.model()->index(idx.row(), 0).data().toUInt()); if (!ds || !dive_site_has_gps_location(ds)) - centerOnDiveSite(&displayed_dive_site); + centerOnSelectedDiveSite(); else centerOnDiveSite(ds); } |