From 476670cb8da0b0e4823e95a3eecdae40e7402811 Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Mon, 17 Jul 2017 23:13:31 +0300 Subject: mapwidgethelper: pass a QGeoCoordinate to the QML map Rename the QML function "centerOnCoordinates" to "centerOnCoordinate" and pass a QGeoCoordinate to it in ::centerOnDiveSite(). This will prevent the creation of a QGeoCoordinate object on the QML side and instead it will be created in C++. Signed-off-by: Lubomir I. Ivanov --- mobile-widgets/qml/MapWidget.qml | 4 ++-- mobile-widgets/qmlmapwidgethelper.cpp | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/mobile-widgets/qml/MapWidget.qml b/mobile-widgets/qml/MapWidget.qml index 5fe941792..ce057d63e 100644 --- a/mobile-widgets/qml/MapWidget.qml +++ b/mobile-widgets/qml/MapWidget.qml @@ -60,8 +60,8 @@ Item { } } - function centerOnCoordinates(latitude, longitude) { - map.newCenter = QtPositioning.coordinate(latitude, longitude); + function centerOnCoordinate(coordinate) { + map.newCenter = coordinate; map.zoomLevel = 2; mapAnimation.restart(); } diff --git a/mobile-widgets/qmlmapwidgethelper.cpp b/mobile-widgets/qmlmapwidgethelper.cpp index faa0c5f84..7fceccdfa 100644 --- a/mobile-widgets/qmlmapwidgethelper.cpp +++ b/mobile-widgets/qmlmapwidgethelper.cpp @@ -18,10 +18,8 @@ void MapWidgetHelper::centerOnDiveSite(struct dive_site *ds) qreal longitude = ds->longitude.udeg / 1000000.0; qreal latitude = ds->latitude.udeg / 1000000.0; - - QMetaObject::invokeMethod(m_map, "centerOnCoordinates", - Q_ARG(QVariant, latitude), - Q_ARG(QVariant, longitude)); + QVariant coord = QVariant::fromValue(QGeoCoordinate(latitude, longitude)); + QMetaObject::invokeMethod(m_map, "centerOnCoordinate", Q_ARG(QVariant, coord)); } void MapWidgetHelper::reloadMapLocations() -- cgit v1.2.3-70-g09d2