diff options
Diffstat (limited to 'map-widget')
-rw-r--r-- | map-widget/qmlmapwidgethelper.cpp | 14 | ||||
-rw-r--r-- | map-widget/qmlmapwidgethelper.h | 2 |
2 files changed, 10 insertions, 6 deletions
diff --git a/map-widget/qmlmapwidgethelper.cpp b/map-widget/qmlmapwidgethelper.cpp index b892cdcea..8164abd3a 100644 --- a/map-widget/qmlmapwidgethelper.cpp +++ b/map-widget/qmlmapwidgethelper.cpp @@ -291,16 +291,20 @@ void MapWidgetHelper::exitEditMode() emit editModeChanged(); } -void MapWidgetHelper::enterEditMode() +void MapWidgetHelper::enterEditMode(quint32 uuid) { + // We don't support editing of a dive site that doesn't exist + struct dive_site *ds = get_dive_site_by_uuid(uuid); + if (!ds) + return; + m_editMode = true; - MapLocation *exists = m_mapLocationModel->getMapLocationForUuid(displayed_dive_site.uuid); + MapLocation *exists = m_mapLocationModel->getMapLocationForUuid(uuid); QGeoCoordinate coord; - // if divesite uuid doesn't exist in the model, add a new MapLocation. + // if divesite doesn't exist in the model, add a new MapLocation. if (!exists) { coord = m_map->property("center").value<QGeoCoordinate>(); - m_mapLocationModel->add(new MapLocation(displayed_dive_site.uuid, coord, - QString(displayed_dive_site.name))); + m_mapLocationModel->add(new MapLocation(uuid, coord, QString(ds->name))); } else { coord = exists->coordinate(); } diff --git a/map-widget/qmlmapwidgethelper.h b/map-widget/qmlmapwidgethelper.h index 132e15310..99f62ca08 100644 --- a/map-widget/qmlmapwidgethelper.h +++ b/map-widget/qmlmapwidgethelper.h @@ -37,7 +37,7 @@ public: Q_INVOKABLE void updateCurrentDiveSiteCoordinatesFromMap(quint32 uuid, QGeoCoordinate coord); Q_INVOKABLE void selectVisibleLocations(); void updateDiveSiteCoordinates(uint32_t uuid, degrees_t latitude, degrees_t longitude); - void enterEditMode(); + void enterEditMode(uint32_t uuid); void exitEditMode(); QString pluginObject(); |