Map: remove LocationInformationWidget::coordinatesChanged signal

This was used by LocationInformationWidget to instruct the map
that the coordinates of the current dive site has changed.
There is no reason why this couldn't be a function call, as no
other object ever connect()s to this signal. In fact, such a
function already exists viz. updateLocationOnMap.

Therefore, replace the signal by a simple function call.

Moreover, the uuid and coordinates of the dive site were transported
via the global "displayed_dive_site" object. Instead, pass this
information in the parameters of the function. This makes it
easier to reason about data- and control-flow.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2018-10-08 12:57:46 +02:00 committed by Dirk Hohndel
parent ad57871a2c
commit 66c5c5f72b
6 changed files with 17 additions and 16 deletions

View file

@ -277,12 +277,12 @@ void MapWidgetHelper::updateCurrentDiveSiteCoordinatesFromMap(quint32 uuid, QGeo
emit coordinatesChanged();
}
void MapWidgetHelper::updateCurrentDiveSiteCoordinatesToMap()
void MapWidgetHelper::updateDiveSiteCoordinates(uint32_t uuid, degrees_t latitude, degrees_t longitude)
{
const qreal latitude = displayed_dive_site.latitude.udeg * 0.000001;
const qreal longitude = displayed_dive_site.longitude.udeg * 0.000001;
QGeoCoordinate coord(latitude, longitude);
m_mapLocationModel->updateMapLocationCoordinates(displayed_dive_site.uuid, coord);
const qreal latitude_r = latitude.udeg * 0.000001;
const qreal longitude_r = longitude.udeg * 0.000001;
QGeoCoordinate coord(latitude_r, longitude_r);
m_mapLocationModel->updateMapLocationCoordinates(uuid, coord);
QMetaObject::invokeMethod(m_map, "centerOnCoordinate", Q_ARG(QVariant, QVariant::fromValue(coord)));
}