Map: split void MapWidget::setEditMode()

The setEditMode(bool) function behaves very differently, when
entering and exiting edit mode. Therefore, split it in two
versions. This will allow to pass arguments that make sense
only when entering the edit mode.

Since setEditMode() doesn't exist anymore, turn the editMode
Q_PROPERTY line to the MEMBER version. Accordingly, remove
the reader function. If QML wants to enter edit mode, it
should invoke the appropriate function and not simply set
the flag.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2018-10-08 15:00:12 +02:00 committed by Dirk Hohndel
parent 754160d625
commit 8091497745
4 changed files with 21 additions and 29 deletions

View file

@ -285,28 +285,27 @@ void MapWidgetHelper::updateDiveSiteCoordinates(uint32_t uuid, degrees_t latitud
QMetaObject::invokeMethod(m_map, "centerOnCoordinate", Q_ARG(QVariant, QVariant::fromValue(coord)));
}
bool MapWidgetHelper::editMode()
void MapWidgetHelper::exitEditMode()
{
return m_editMode;
m_editMode = false;
emit editModeChanged();
}
void MapWidgetHelper::setEditMode(bool editMode)
void MapWidgetHelper::enterEditMode()
{
m_editMode = editMode;
m_editMode = true;
MapLocation *exists = m_mapLocationModel->getMapLocationForUuid(displayed_dive_site.uuid);
if (editMode) {
QGeoCoordinate coord;
// if divesite uuid 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)));
} else {
coord = exists->coordinate();
}
emit coordinatesChanged(degrees_t { (int)lrint(coord.latitude() * 1000000.0) },
degrees_t { (int)lrint(coord.longitude() * 1000000.0) });
QGeoCoordinate coord;
// if divesite uuid 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)));
} else {
coord = exists->coordinate();
}
emit coordinatesChanged(degrees_t { (int)lrint(coord.latitude() * 1000000.0) },
degrees_t { (int)lrint(coord.longitude() * 1000000.0) });
emit editModeChanged();
}