summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--desktop-widgets/locationinformation.cpp22
-rw-r--r--desktop-widgets/locationinformation.h2
-rw-r--r--desktop-widgets/mapwidget.cpp4
-rw-r--r--desktop-widgets/mapwidget.h2
-rw-r--r--map-widget/qmlmapwidgethelper.cpp14
-rw-r--r--map-widget/qmlmapwidgethelper.h2
6 files changed, 19 insertions, 27 deletions
diff --git a/desktop-widgets/locationinformation.cpp b/desktop-widgets/locationinformation.cpp
index 5fc1eb4d0..64c0574b9 100644
--- a/desktop-widgets/locationinformation.cpp
+++ b/desktop-widgets/locationinformation.cpp
@@ -49,14 +49,8 @@ LocationInformationWidget::LocationInformationWidget(QWidget *parent) : QGroupBo
ui.diveSiteListView->setModelColumn(LocationInformationModel::NAME);
ui.diveSiteListView->installEventFilter(this);
// Map Management Code.
- connect(this, &LocationInformationWidget::requestCoordinates,
- MapWidget::instance(), &MapWidget::prepareForGetDiveCoordinates);
- connect(this, &LocationInformationWidget::endRequestCoordinates,
- MapWidget::instance(), &MapWidget::endGetDiveCoordinates);
connect(MapWidget::instance(), &MapWidget::coordinatesChanged,
this, &LocationInformationWidget::updateGpsCoordinates);
- connect(this, &LocationInformationWidget::endEditDiveSite,
- MapWidget::instance(), &MapWidget::repopulateLabels);
}
bool LocationInformationWidget::eventFilter(QObject *object, QEvent *ev)
@@ -213,19 +207,11 @@ void LocationInformationWidget::acceptChanges()
copy_dive_site(currentDs, &displayed_dive_site);
mark_divelist_changed(true);
resetState();
- emit endRequestCoordinates();
- emit endEditDiveSite();
- emit stopFilterDiveSite();
- updateLocationOnMap();
}
void LocationInformationWidget::rejectChanges()
{
resetState();
- emit endRequestCoordinates();
- emit stopFilterDiveSite();
- emit endEditDiveSite();
- updateLocationOnMap();
}
void LocationInformationWidget::showEvent(QShowEvent *ev)
@@ -240,8 +226,7 @@ void LocationInformationWidget::showEvent(QShowEvent *ev)
} else {
clearLabels();
}
- emit requestCoordinates();
-
+ MapWidget::instance()->prepareForGetDiveCoordinates(displayed_dive_site.uuid);
QGroupBox::showEvent(ev);
}
@@ -264,6 +249,11 @@ void LocationInformationWidget::resetState()
MainWindow::instance()->dive_list()->setEnabled(true);
MainWindow::instance()->setEnabledToolbar(true);
ui.diveSiteMessage->setText(tr("Dive site management"));
+ MapWidget::instance()->endGetDiveCoordinates();
+ MapWidget::instance()->repopulateLabels();
+ emit stopFilterDiveSite();
+ emit endEditDiveSite();
+ updateLocationOnMap();
}
void LocationInformationWidget::enableEdition()
diff --git a/desktop-widgets/locationinformation.h b/desktop-widgets/locationinformation.h
index 0e425e217..225414b2f 100644
--- a/desktop-widgets/locationinformation.h
+++ b/desktop-widgets/locationinformation.h
@@ -41,8 +41,6 @@ signals:
void endEditDiveSite();
void startFilterDiveSite(uint32_t uuid);
void stopFilterDiveSite();
- void requestCoordinates();
- void endRequestCoordinates();
void nameChanged(const QString &oldName, const QString &newName);
private:
diff --git a/desktop-widgets/mapwidget.cpp b/desktop-widgets/mapwidget.cpp
index ca519b774..471e924a6 100644
--- a/desktop-widgets/mapwidget.cpp
+++ b/desktop-widgets/mapwidget.cpp
@@ -93,10 +93,10 @@ void MapWidget::endGetDiveCoordinates()
m_mapHelper->exitEditMode();
}
-void MapWidget::prepareForGetDiveCoordinates()
+void MapWidget::prepareForGetDiveCoordinates(uint32_t uuid)
{
CHECK_IS_READY_RETURN_VOID();
- m_mapHelper->enterEditMode();
+ m_mapHelper->enterEditMode(uuid);
}
void MapWidget::selectedDivesChanged(QList<int> list)
diff --git a/desktop-widgets/mapwidget.h b/desktop-widgets/mapwidget.h
index 7ce8e7df8..eb7d994aa 100644
--- a/desktop-widgets/mapwidget.h
+++ b/desktop-widgets/mapwidget.h
@@ -33,7 +33,7 @@ public slots:
void centerOnIndex(const QModelIndex& idx);
void endGetDiveCoordinates();
void repopulateLabels();
- void prepareForGetDiveCoordinates();
+ void prepareForGetDiveCoordinates(uint32_t uuid);
void selectedDivesChanged(QList<int>);
void coordinatesChangedLocal(degrees_t latitude, degrees_t longitude);
void doneLoading(QQuickWidget::Status status);
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();