diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2019-05-03 12:10:19 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-05-11 12:06:19 -0700 |
commit | d4a91a52fa54db951d09f9433b392d50183bf7ab (patch) | |
tree | e1a40541edcd23d0061ab6d263f65e13387a3959 /desktop-widgets/mapwidget.cpp | |
parent | 48b8129137ed3db1c4b0940301c8bfc9662bcee3 (diff) | |
download | subsurface-d4a91a52fa54db951d09f9433b392d50183bf7ab.tar.gz |
Map: reload on selection change directly
When changing the dive selection, we have to reload the map to show
the correctly highlighted flags. Do this directly by hooking into
the DiveListNotifier::divesChanged signal instead of indirectly
via the MainTab.
Moreover, on reload center on the highlighted dive sites.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets/mapwidget.cpp')
-rw-r--r-- | desktop-widgets/mapwidget.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/desktop-widgets/mapwidget.cpp b/desktop-widgets/mapwidget.cpp index 14ac3a075..3d26f4d6a 100644 --- a/desktop-widgets/mapwidget.cpp +++ b/desktop-widgets/mapwidget.cpp @@ -6,7 +6,6 @@ #include "mapwidget.h" #include "core/divesite.h" -#include "core/subsurface-qt/DiveListNotifier.h" #include "map-widget/qmlmapwidgethelper.h" #include "qt-models/maplocationmodel.h" #include "qt-models/divelocationmodel.h" @@ -31,6 +30,7 @@ MapWidget::MapWidget(QWidget *parent) : QQuickWidget(parent) setResizeMode(QQuickWidget::SizeRootObjectToView); connect(this, &QQuickWidget::statusChanged, this, &MapWidget::doneLoading); connect(&diveListNotifier, &DiveListNotifier::diveSiteChanged, this, &MapWidget::diveSiteChanged); + connect(&diveListNotifier, &DiveListNotifier::divesChanged, this, &MapWidget::divesChanged); setSource(urlMapWidget); } @@ -85,8 +85,10 @@ void MapWidget::repopulateLabels() void MapWidget::reload() { CHECK_IS_READY_RETURN_VOID(); - if (!skipReload) + if (!skipReload) { m_mapHelper->reloadMapLocations(); + centerOnSelectedDiveSite(); + } } void MapWidget::endGetDiveCoordinates() @@ -129,6 +131,12 @@ void MapWidget::diveSiteChanged(struct dive_site *ds, int field) m_mapHelper->updateDiveSiteCoordinates(ds, ds->location); } +void MapWidget::divesChanged(dive_trip *, const QVector<dive *> &, DiveField field) +{ + if (field == DiveField::DIVESITE) + reload(); +} + MapWidget::~MapWidget() { m_instance = NULL; |