From b4740803a1b71d27146df0b13460c222cf2e2ca8 Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Wed, 19 Jul 2017 03:06:40 +0300 Subject: mapwidgethelper: pass a MapLocation object to QML in centerOnDiveSite() The function in QML centerOnCoordinate() is now renamed centerOnMapLocation() and accepts a MapLocation object, so that a marker is selected (based on UUID). In MapWidgetHelper::centerOnDiveSite(), the pointer to a MapLocation is retrieved via MapLocationModel::getMapLocationForUuid(). Added in the previous commit. Signed-off-by: Lubomir I. Ivanov --- mobile-widgets/qml/MapWidget.qml | 5 +++-- mobile-widgets/qmlmapwidgethelper.cpp | 7 ++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/mobile-widgets/qml/MapWidget.qml b/mobile-widgets/qml/MapWidget.qml index 7249ed632..ddfd2938c 100644 --- a/mobile-widgets/qml/MapWidget.qml +++ b/mobile-widgets/qml/MapWidget.qml @@ -70,10 +70,11 @@ Item { } } - function centerOnCoordinate(coordinate) { - map.newCenter = coordinate; + function centerOnMapLocation(mapLocation) { + map.newCenter = mapLocation.coordinate; map.zoomLevel = 2; mapAnimation.restart(); + mapHelper.model.selectedUuid = mapLocation.uuid; } } } diff --git a/mobile-widgets/qmlmapwidgethelper.cpp b/mobile-widgets/qmlmapwidgethelper.cpp index 801e46620..e0781e7c7 100644 --- a/mobile-widgets/qmlmapwidgethelper.cpp +++ b/mobile-widgets/qmlmapwidgethelper.cpp @@ -17,11 +17,8 @@ void MapWidgetHelper::centerOnDiveSite(struct dive_site *ds) { if (!dive_site_has_gps_location(ds)) return; - - qreal longitude = ds->longitude.udeg / 1000000.0; - qreal latitude = ds->latitude.udeg / 1000000.0; - QVariant coord = QVariant::fromValue(QGeoCoordinate(latitude, longitude)); - QMetaObject::invokeMethod(m_map, "centerOnCoordinate", Q_ARG(QVariant, coord)); + MapLocation *location = m_mapLocationModel->getMapLocationForUuid(ds->uuid); + QMetaObject::invokeMethod(m_map, "centerOnMapLocation", Q_ARG(QVariant, QVariant::fromValue(location))); } void MapWidgetHelper::reloadMapLocations() -- cgit v1.2.3-70-g09d2