diff --git a/mobile-widgets/qml/MapWidget.qml b/mobile-widgets/qml/MapWidget.qml index 128423285..685bc0dc6 100644 --- a/mobile-widgets/qml/MapWidget.qml +++ b/mobile-widgets/qml/MapWidget.qml @@ -153,9 +153,8 @@ Item { mapAnimationZoomOut.restart() } - function centerOnMapLocation(mapLocation) { - mapHelper.model.setSelectedUuid(mapLocation.uuid, false) - animateMapZoomIn(mapLocation.coordinate) + function centerOnCoordinate(coord) { + animateMapZoomIn(coord) } function deselectMapLocation() { diff --git a/mobile-widgets/qmlmapwidgethelper.cpp b/mobile-widgets/qmlmapwidgethelper.cpp index f0855e52d..7a17feaa0 100644 --- a/mobile-widgets/qmlmapwidgethelper.cpp +++ b/mobile-widgets/qmlmapwidgethelper.cpp @@ -22,11 +22,15 @@ MapWidgetHelper::MapWidgetHelper(QObject *parent) : QObject(parent) void MapWidgetHelper::centerOnDiveSite(struct dive_site *ds) { if (!dive_site_has_gps_location(ds)) { + m_mapLocationModel->setSelectedUuid(ds ? ds->uuid : 0, false); QMetaObject::invokeMethod(m_map, "deselectMapLocation"); return; } - MapLocation *location = m_mapLocationModel->getMapLocationForUuid(ds->uuid); - QMetaObject::invokeMethod(m_map, "centerOnMapLocation", Q_ARG(QVariant, QVariant::fromValue(location))); + m_mapLocationModel->setSelectedUuid(ds->uuid, false); + const qreal latitude = ds->latitude.udeg * 0.000001; + const qreal longitude = ds->longitude.udeg * 0.000001; + QGeoCoordinate dsCoord(latitude, longitude); + QMetaObject::invokeMethod(m_map, "centerOnCoordinate", Q_ARG(QVariant, QVariant::fromValue(dsCoord))); } void MapWidgetHelper::reloadMapLocations()