mapwidgethelper: change centerOnDiveSite()

Call setSelectedUuid() from C++ also center on coodinates instead
on a MapLocation, as there is no point to pass the MapLocation object
back to QML.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
This commit is contained in:
Lubomir I. Ivanov 2017-07-27 23:46:54 +03:00 committed by Dirk Hohndel
parent f6e269c07a
commit ff4924f650
2 changed files with 8 additions and 5 deletions

View file

@ -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() {

View file

@ -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()