mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
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:
parent
ad57871a2c
commit
66c5c5f72b
6 changed files with 17 additions and 16 deletions
|
@ -57,8 +57,6 @@ LocationInformationWidget::LocationInformationWidget(QWidget *parent) : QGroupBo
|
||||||
this, &LocationInformationWidget::updateGpsCoordinates);
|
this, &LocationInformationWidget::updateGpsCoordinates);
|
||||||
connect(this, &LocationInformationWidget::endEditDiveSite,
|
connect(this, &LocationInformationWidget::endEditDiveSite,
|
||||||
MapWidget::instance(), &MapWidget::repopulateLabels);
|
MapWidget::instance(), &MapWidget::repopulateLabels);
|
||||||
connect(this, &LocationInformationWidget::coordinatesChanged,
|
|
||||||
MapWidget::instance(), &MapWidget::updateCurrentDiveSiteCoordinatesToMap);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LocationInformationWidget::eventFilter(QObject *object, QEvent *ev)
|
bool LocationInformationWidget::eventFilter(QObject *object, QEvent *ev)
|
||||||
|
@ -70,7 +68,7 @@ bool LocationInformationWidget::eventFilter(QObject *object, QEvent *ev)
|
||||||
contextMenu.exec(ctx->globalPos());
|
contextMenu.exec(ctx->globalPos());
|
||||||
return true;
|
return true;
|
||||||
} else if (ev->type() == QEvent::FocusOut && object == ui.diveSiteCoordinates) {
|
} else if (ev->type() == QEvent::FocusOut && object == ui.diveSiteCoordinates) {
|
||||||
emit coordinatesChanged();
|
updateLocationOnMap();
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -218,7 +216,7 @@ void LocationInformationWidget::acceptChanges()
|
||||||
emit endRequestCoordinates();
|
emit endRequestCoordinates();
|
||||||
emit endEditDiveSite();
|
emit endEditDiveSite();
|
||||||
emit stopFilterDiveSite();
|
emit stopFilterDiveSite();
|
||||||
emit coordinatesChanged();
|
updateLocationOnMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
void LocationInformationWidget::rejectChanges()
|
void LocationInformationWidget::rejectChanges()
|
||||||
|
@ -227,7 +225,7 @@ void LocationInformationWidget::rejectChanges()
|
||||||
emit endRequestCoordinates();
|
emit endRequestCoordinates();
|
||||||
emit stopFilterDiveSite();
|
emit stopFilterDiveSite();
|
||||||
emit endEditDiveSite();
|
emit endEditDiveSite();
|
||||||
emit coordinatesChanged();
|
updateLocationOnMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
void LocationInformationWidget::showEvent(QShowEvent *ev)
|
void LocationInformationWidget::showEvent(QShowEvent *ev)
|
||||||
|
@ -336,7 +334,9 @@ void LocationInformationWidget::reverseGeocode()
|
||||||
|
|
||||||
void LocationInformationWidget::updateLocationOnMap()
|
void LocationInformationWidget::updateLocationOnMap()
|
||||||
{
|
{
|
||||||
emit coordinatesChanged();
|
if (displayed_dive_site.uuid)
|
||||||
|
MapWidget::instance()->updateDiveSiteCoordinates(displayed_dive_site.uuid, displayed_dive_site.latitude,
|
||||||
|
displayed_dive_site.longitude);
|
||||||
}
|
}
|
||||||
|
|
||||||
DiveLocationFilterProxyModel::DiveLocationFilterProxyModel(QObject*)
|
DiveLocationFilterProxyModel::DiveLocationFilterProxyModel(QObject*)
|
||||||
|
|
|
@ -38,7 +38,6 @@ private slots:
|
||||||
signals:
|
signals:
|
||||||
void startEditDiveSite(uint32_t uuid);
|
void startEditDiveSite(uint32_t uuid);
|
||||||
void endEditDiveSite();
|
void endEditDiveSite();
|
||||||
void coordinatesChanged();
|
|
||||||
void startFilterDiveSite(uint32_t uuid);
|
void startFilterDiveSite(uint32_t uuid);
|
||||||
void stopFilterDiveSite();
|
void stopFilterDiveSite();
|
||||||
void requestCoordinates();
|
void requestCoordinates();
|
||||||
|
|
|
@ -122,10 +122,10 @@ void MapWidget::coordinatesChangedLocal()
|
||||||
emit coordinatesChanged();
|
emit coordinatesChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MapWidget::updateCurrentDiveSiteCoordinatesToMap()
|
void MapWidget::updateDiveSiteCoordinates(uint32_t uuid, degrees_t latitude, degrees_t longitude)
|
||||||
{
|
{
|
||||||
CHECK_IS_READY_RETURN_VOID();
|
CHECK_IS_READY_RETURN_VOID();
|
||||||
m_mapHelper->updateCurrentDiveSiteCoordinatesToMap();
|
m_mapHelper->updateDiveSiteCoordinates(uuid, latitude, longitude);
|
||||||
}
|
}
|
||||||
|
|
||||||
MapWidget::~MapWidget()
|
MapWidget::~MapWidget()
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#ifndef MAPWIDGET_H
|
#ifndef MAPWIDGET_H
|
||||||
#define MAPWIDGET_H
|
#define MAPWIDGET_H
|
||||||
|
|
||||||
|
#include "core/units.h"
|
||||||
#include <QQuickWidget>
|
#include <QQuickWidget>
|
||||||
#include <QList>
|
#include <QList>
|
||||||
|
|
||||||
|
@ -36,7 +37,7 @@ public slots:
|
||||||
void selectedDivesChanged(QList<int>);
|
void selectedDivesChanged(QList<int>);
|
||||||
void coordinatesChangedLocal();
|
void coordinatesChangedLocal();
|
||||||
void doneLoading(QQuickWidget::Status status);
|
void doneLoading(QQuickWidget::Status status);
|
||||||
void updateCurrentDiveSiteCoordinatesToMap();
|
void updateDiveSiteCoordinates(uint32_t uuid, degrees_t latitude, degrees_t longitude);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void setEditMode(bool editMode);
|
void setEditMode(bool editMode);
|
||||||
|
|
|
@ -277,12 +277,12 @@ void MapWidgetHelper::updateCurrentDiveSiteCoordinatesFromMap(quint32 uuid, QGeo
|
||||||
emit coordinatesChanged();
|
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 latitude_r = latitude.udeg * 0.000001;
|
||||||
const qreal longitude = displayed_dive_site.longitude.udeg * 0.000001;
|
const qreal longitude_r = longitude.udeg * 0.000001;
|
||||||
QGeoCoordinate coord(latitude, longitude);
|
QGeoCoordinate coord(latitude_r, longitude_r);
|
||||||
m_mapLocationModel->updateMapLocationCoordinates(displayed_dive_site.uuid, coord);
|
m_mapLocationModel->updateMapLocationCoordinates(uuid, coord);
|
||||||
QMetaObject::invokeMethod(m_map, "centerOnCoordinate", Q_ARG(QVariant, QVariant::fromValue(coord)));
|
QMetaObject::invokeMethod(m_map, "centerOnCoordinate", Q_ARG(QVariant, QVariant::fromValue(coord)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#ifndef QMLMAPWIDGETHELPER_H
|
#ifndef QMLMAPWIDGETHELPER_H
|
||||||
#define QMLMAPWIDGETHELPER_H
|
#define QMLMAPWIDGETHELPER_H
|
||||||
|
|
||||||
|
#include "core/units.h"
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QGeoCoordinate>
|
#include <QGeoCoordinate>
|
||||||
#include <QVariant>
|
#include <QVariant>
|
||||||
|
@ -35,7 +36,7 @@ public:
|
||||||
Q_INVOKABLE void calculateSmallCircleRadius(QGeoCoordinate coord);
|
Q_INVOKABLE void calculateSmallCircleRadius(QGeoCoordinate coord);
|
||||||
Q_INVOKABLE void updateCurrentDiveSiteCoordinatesFromMap(quint32 uuid, QGeoCoordinate coord);
|
Q_INVOKABLE void updateCurrentDiveSiteCoordinatesFromMap(quint32 uuid, QGeoCoordinate coord);
|
||||||
Q_INVOKABLE void selectVisibleLocations();
|
Q_INVOKABLE void selectVisibleLocations();
|
||||||
void updateCurrentDiveSiteCoordinatesToMap();
|
void updateDiveSiteCoordinates(uint32_t uuid, degrees_t latitude, degrees_t longitude);
|
||||||
bool editMode();
|
bool editMode();
|
||||||
void setEditMode(bool editMode);
|
void setEditMode(bool editMode);
|
||||||
QString pluginObject();
|
QString pluginObject();
|
||||||
|
|
Loading…
Reference in a new issue