mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-27 20:58:47 +00:00
Map: pass changed coordinates via signal
The coordinates of a "dragged flag" were passed out-of-bound via the global "displayed_dive_site" object and then a signal was sent to notify of the changed coordinates. Instead, pass the coordinates directly via the signal. This makes the data- and control-flow more clear. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
66c5c5f72b
commit
754160d625
6 changed files with 14 additions and 16 deletions
|
@ -141,10 +141,10 @@ void LocationInformationWidget::clearLabels()
|
|||
ui.locationTags->clear();
|
||||
}
|
||||
|
||||
void LocationInformationWidget::updateGpsCoordinates()
|
||||
void LocationInformationWidget::updateGpsCoordinates(degrees_t latitude, degrees_t longitude)
|
||||
{
|
||||
QString oldText = ui.diveSiteCoordinates->text();
|
||||
const char *coords = printGPSCoords(displayed_dive_site.latitude.udeg, displayed_dive_site.longitude.udeg);
|
||||
const char *coords = printGPSCoords(latitude.udeg, longitude.udeg);
|
||||
ui.diveSiteCoordinates->setText(coords);
|
||||
enableLocationButtons(dive_site_has_gps_location(&displayed_dive_site));
|
||||
free((void *)coords);
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#ifndef LOCATIONINFORMATION_H
|
||||
#define LOCATIONINFORMATION_H
|
||||
|
||||
#include "core/units.h"
|
||||
#include "ui_locationInformation.h"
|
||||
#include <stdint.h>
|
||||
#include <QAbstractListModel>
|
||||
|
@ -20,7 +21,7 @@ protected:
|
|||
public slots:
|
||||
void acceptChanges();
|
||||
void rejectChanges();
|
||||
void updateGpsCoordinates();
|
||||
void updateGpsCoordinates(degrees_t latitude, degrees_t longitude);
|
||||
void markChangedWidget(QWidget *w);
|
||||
void enableEdition();
|
||||
void resetState();
|
||||
|
|
|
@ -46,8 +46,7 @@ void MapWidget::doneLoading(QQuickWidget::Status status)
|
|||
m_mapHelper = rootObject()->findChild<MapWidgetHelper *>();
|
||||
connect(m_mapHelper, SIGNAL(selectedDivesChanged(QList<int>)),
|
||||
this, SLOT(selectedDivesChanged(QList<int>)));
|
||||
connect(m_mapHelper, SIGNAL(coordinatesChanged()),
|
||||
this, SLOT(coordinatesChangedLocal()));
|
||||
connect(m_mapHelper, &MapWidgetHelper::coordinatesChanged, this, &MapWidget::coordinatesChangedLocal);
|
||||
}
|
||||
|
||||
void MapWidget::centerOnSelectedDiveSite()
|
||||
|
@ -116,10 +115,10 @@ void MapWidget::selectedDivesChanged(QList<int> list)
|
|||
skipReload = false;
|
||||
}
|
||||
|
||||
void MapWidget::coordinatesChangedLocal()
|
||||
void MapWidget::coordinatesChangedLocal(degrees_t latitude, degrees_t longitude)
|
||||
{
|
||||
CHECK_IS_READY_RETURN_VOID();
|
||||
emit coordinatesChanged();
|
||||
emit coordinatesChanged(latitude, longitude);
|
||||
}
|
||||
|
||||
void MapWidget::updateDiveSiteCoordinates(uint32_t uuid, degrees_t latitude, degrees_t longitude)
|
||||
|
|
|
@ -25,7 +25,7 @@ public:
|
|||
void reload();
|
||||
|
||||
signals:
|
||||
void coordinatesChanged();
|
||||
void coordinatesChanged(degrees_t latitude, degrees_t longitude);
|
||||
|
||||
public slots:
|
||||
void centerOnSelectedDiveSite();
|
||||
|
@ -35,7 +35,7 @@ public slots:
|
|||
void repopulateLabels();
|
||||
void prepareForGetDiveCoordinates();
|
||||
void selectedDivesChanged(QList<int>);
|
||||
void coordinatesChangedLocal();
|
||||
void coordinatesChangedLocal(degrees_t latitude, degrees_t longitude);
|
||||
void doneLoading(QQuickWidget::Status status);
|
||||
void updateDiveSiteCoordinates(uint32_t uuid, degrees_t latitude, degrees_t longitude);
|
||||
|
||||
|
|
|
@ -272,9 +272,8 @@ void MapWidgetHelper::updateCurrentDiveSiteCoordinatesFromMap(quint32 uuid, QGeo
|
|||
MapLocation *loc = m_mapLocationModel->getMapLocationForUuid(uuid);
|
||||
if (loc)
|
||||
loc->setCoordinate(coord);
|
||||
displayed_dive_site.latitude.udeg = lrint(coord.latitude() * 1000000.0);
|
||||
displayed_dive_site.longitude.udeg = lrint(coord.longitude() * 1000000.0);
|
||||
emit coordinatesChanged();
|
||||
emit coordinatesChanged(degrees_t { (int)lrint(coord.latitude() * 1000000.0) },
|
||||
degrees_t { (int)lrint(coord.longitude() * 1000000.0) });
|
||||
}
|
||||
|
||||
void MapWidgetHelper::updateDiveSiteCoordinates(uint32_t uuid, degrees_t latitude, degrees_t longitude)
|
||||
|
@ -305,9 +304,8 @@ void MapWidgetHelper::setEditMode(bool editMode)
|
|||
} else {
|
||||
coord = exists->coordinate();
|
||||
}
|
||||
displayed_dive_site.latitude.udeg = lrint(coord.latitude() * 1000000.0);
|
||||
displayed_dive_site.longitude.udeg = lrint(coord.longitude() * 1000000.0);
|
||||
emit coordinatesChanged();
|
||||
emit coordinatesChanged(degrees_t { (int)lrint(coord.latitude() * 1000000.0) },
|
||||
degrees_t { (int)lrint(coord.longitude() * 1000000.0) });
|
||||
}
|
||||
emit editModeChanged();
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ signals:
|
|||
void modelChanged();
|
||||
void editModeChanged();
|
||||
void selectedDivesChanged(QList<int> list);
|
||||
void coordinatesChanged();
|
||||
void coordinatesChanged(degrees_t latitude, degrees_t longitude);
|
||||
void pluginObjectChanged();
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue