diff options
Diffstat (limited to 'map-widget')
-rw-r--r-- | map-widget/qmlmapwidgethelper.cpp | 12 | ||||
-rw-r--r-- | map-widget/qmlmapwidgethelper.h | 3 |
2 files changed, 6 insertions, 9 deletions
diff --git a/map-widget/qmlmapwidgethelper.cpp b/map-widget/qmlmapwidgethelper.cpp index ccc5a6e7a..7d752cc63 100644 --- a/map-widget/qmlmapwidgethelper.cpp +++ b/map-widget/qmlmapwidgethelper.cpp @@ -8,6 +8,7 @@ #include "core/divesite.h" #include "core/qthelper.h" #include "qt-models/maplocationmodel.h" +#include "qt-models/divelocationmodel.h" #ifndef SUBSURFACE_MOBILE #include "qt-models/filtermodels.h" #endif @@ -22,6 +23,7 @@ MapWidgetHelper::MapWidgetHelper(QObject *parent) : QObject(parent) m_editMode = false; connect(m_mapLocationModel, SIGNAL(selectedLocationChanged(MapLocation *)), this, SLOT(selectedLocationChanged(MapLocation *))); + connect(&diveListNotifier, &DiveListNotifier::diveSiteChanged, this, &MapWidgetHelper::diveSiteChanged); } QGeoCoordinate MapWidgetHelper::getCoordinates(struct dive_site *ds) @@ -218,15 +220,9 @@ void MapWidgetHelper::updateCurrentDiveSiteCoordinatesFromMap(struct dive_site * emit coordinatesChanged(ds, location); } -void MapWidgetHelper::updateDiveSiteCoordinates(struct dive_site *ds, const location_t &location) +void MapWidgetHelper::diveSiteChanged(struct dive_site *ds, int field) { - if (!ds) - return; - const qreal latitude_r = location.lat.udeg * 0.000001; - const qreal longitude_r = location.lon.udeg * 0.000001; - QGeoCoordinate coord(latitude_r, longitude_r); - m_mapLocationModel->updateMapLocationCoordinates(ds, coord); - QMetaObject::invokeMethod(m_map, "centerOnCoordinate", Q_ARG(QVariant, QVariant::fromValue(coord))); + centerOnDiveSite(ds); } void MapWidgetHelper::exitEditMode() diff --git a/map-widget/qmlmapwidgethelper.h b/map-widget/qmlmapwidgethelper.h index d6348c346..86d9a8ff5 100644 --- a/map-widget/qmlmapwidgethelper.h +++ b/map-widget/qmlmapwidgethelper.h @@ -3,6 +3,7 @@ #define QMLMAPWIDGETHELPER_H #include "core/units.h" +#include "core/subsurface-qt/DiveListNotifier.h" #include <QObject> #include <QGeoCoordinate> @@ -34,7 +35,6 @@ public: Q_INVOKABLE void calculateSmallCircleRadius(QGeoCoordinate coord); Q_INVOKABLE void updateCurrentDiveSiteCoordinatesFromMap(struct dive_site *ds, QGeoCoordinate coord); Q_INVOKABLE void selectVisibleLocations(); - void updateDiveSiteCoordinates(struct dive_site *ds, const location_t &); QString pluginObject(); private: @@ -47,6 +47,7 @@ private: private slots: void selectedLocationChanged(MapLocation *); + void diveSiteChanged(struct dive_site *ds, int field); signals: void modelChanged(); |