diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2019-03-14 22:48:03 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-04-12 18:19:07 +0300 |
commit | 0b851d723e1b57fd2065c268977e023cfb364066 (patch) | |
tree | 332265f1cb2fcc9adeab29936ad50ebb9cecaaa5 | |
parent | fa4fedbb488eacff72d5d8691b4da8b34634a71e (diff) | |
download | subsurface-0b851d723e1b57fd2065c268977e023cfb364066.tar.gz |
Undo: update map when dive site location is changed by undo command
Simply hook into the appropriate signal. Thus, the "update dive site
location" button can be removed.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r-- | desktop-widgets/locationinformation.cpp | 17 | ||||
-rw-r--r-- | desktop-widgets/locationinformation.h | 1 | ||||
-rw-r--r-- | desktop-widgets/locationinformation.ui | 15 | ||||
-rw-r--r-- | desktop-widgets/mapwidget.cpp | 7 | ||||
-rw-r--r-- | desktop-widgets/mapwidget.h | 2 |
5 files changed, 6 insertions, 36 deletions
diff --git a/desktop-widgets/locationinformation.cpp b/desktop-widgets/locationinformation.cpp index 17e9d488e..4c9414056 100644 --- a/desktop-widgets/locationinformation.cpp +++ b/desktop-widgets/locationinformation.cpp @@ -36,8 +36,6 @@ LocationInformationWidget::LocationInformationWidget(QWidget *parent) : QGroupBo ui.diveSiteMessage->addAction(rejectAction); connect(ui.geoCodeButton, SIGNAL(clicked()), this, SLOT(reverseGeocode())); - connect(ui.updateLocationButton, SIGNAL(clicked()), this, SLOT(updateLocationOnMap())); - connect(ui.diveSiteCoordinates, SIGNAL(returnPressed()), this, SLOT(updateLocationOnMap())); ui.diveSiteCoordinates->installEventFilter(this); connect(&diveListNotifier, &DiveListNotifier::diveSiteChanged, this, &LocationInformationWidget::diveSiteChanged); @@ -58,8 +56,6 @@ bool LocationInformationWidget::eventFilter(QObject *object, QEvent *ev) contextMenu.addAction(tr("Merge into current site"), this, SLOT(mergeSelectedDiveSites())); contextMenu.exec(ctx->globalPos()); return true; - } else if (ev->type() == QEvent::FocusOut && object == ui.diveSiteCoordinates) { - updateLocationOnMap(); } return false; } @@ -67,7 +63,6 @@ bool LocationInformationWidget::eventFilter(QObject *object, QEvent *ev) void LocationInformationWidget::enableLocationButtons(bool enable) { ui.geoCodeButton->setEnabled(enable); - ui.updateLocationButton->setEnabled(enable); } void LocationInformationWidget::mergeSelectedDiveSites() @@ -241,7 +236,6 @@ void LocationInformationWidget::resetState() MapWidget::instance()->repopulateLabels(); MultiFilterSortModel::instance()->stopFilterDiveSite(); emit endEditDiveSite(); - updateLocationOnMap(); } void LocationInformationWidget::enableEdition() @@ -301,17 +295,6 @@ void LocationInformationWidget::reverseGeocode() ui.locationTags->setText(constructLocationTags(&taxonomy, false)); } -void LocationInformationWidget::updateLocationOnMap() -{ - if (!diveSite) - return; - location_t location; - if (!parseGpsText(ui.diveSiteCoordinates->text(), location)) - return; - MapWidget::instance()->updateDiveSiteCoordinates(diveSite, location); - filter_model.setCoordinates(location); -} - DiveLocationFilterProxyModel::DiveLocationFilterProxyModel(QObject*) { } diff --git a/desktop-widgets/locationinformation.h b/desktop-widgets/locationinformation.h index dc77da9e6..efa770774 100644 --- a/desktop-widgets/locationinformation.h +++ b/desktop-widgets/locationinformation.h @@ -38,7 +38,6 @@ public slots: void mergeSelectedDiveSites(); private slots: void updateLabels(); - void updateLocationOnMap(); void diveSiteChanged(struct dive_site *ds, int field); signals: void endEditDiveSite(); diff --git a/desktop-widgets/locationinformation.ui b/desktop-widgets/locationinformation.ui index 10ffe8ff2..f45d0ceea 100644 --- a/desktop-widgets/locationinformation.ui +++ b/desktop-widgets/locationinformation.ui @@ -156,20 +156,6 @@ <item row="2" column="2" colspan="3"> <widget class="QLineEdit" name="diveSiteCountry"/> </item> - <item row="3" column="3"> - <widget class="QToolButton" name="updateLocationButton"> - <property name="toolTip"> - <string>Update location on map</string> - </property> - <property name="text"> - <string/> - </property> - <property name="icon"> - <iconset resource="../subsurface.qrc"> - <normaloff>:dive-location-marker-selected-icon</normaloff>:dive-location-marker-selected-icon</iconset> - </property> - </widget> - </item> </layout> </widget> <customwidgets> @@ -188,7 +174,6 @@ <tabstop>diveSiteName</tabstop> <tabstop>diveSiteCountry</tabstop> <tabstop>diveSiteCoordinates</tabstop> - <tabstop>updateLocationButton</tabstop> <tabstop>geoCodeButton</tabstop> <tabstop>diveSiteDescription</tabstop> <tabstop>diveSiteNotes</tabstop> diff --git a/desktop-widgets/mapwidget.cpp b/desktop-widgets/mapwidget.cpp index 3d2abf0b2..c7b4a08ad 100644 --- a/desktop-widgets/mapwidget.cpp +++ b/desktop-widgets/mapwidget.cpp @@ -6,6 +6,7 @@ #include "mapwidget.h" #include "core/divesite.h" +#include "core/subsurface-qt/DiveListNotifier.h" #include "map-widget/qmlmapwidgethelper.h" #include "qt-models/maplocationmodel.h" #include "qt-models/divelocationmodel.h" @@ -28,6 +29,7 @@ MapWidget::MapWidget(QWidget *parent) : QQuickWidget(parent) m_mapHelper = nullptr; setResizeMode(QQuickWidget::SizeRootObjectToView); connect(this, &QQuickWidget::statusChanged, this, &MapWidget::doneLoading); + connect(&diveListNotifier, &DiveListNotifier::diveSiteChanged, this, &MapWidget::diveSiteChanged); setSource(urlMapWidget); } @@ -116,10 +118,11 @@ void MapWidget::coordinatesChangedLocal(const location_t &location) emit coordinatesChanged(location); } -void MapWidget::updateDiveSiteCoordinates(struct dive_site *ds, const location_t &location) +void MapWidget::diveSiteChanged(struct dive_site *ds, int field) { CHECK_IS_READY_RETURN_VOID(); - m_mapHelper->updateDiveSiteCoordinates(ds, location); + if (field == LocationInformationModel::LOCATION) + m_mapHelper->updateDiveSiteCoordinates(ds, ds->location); } MapWidget::~MapWidget() diff --git a/desktop-widgets/mapwidget.h b/desktop-widgets/mapwidget.h index 4eb0d3ca9..bbdae80aa 100644 --- a/desktop-widgets/mapwidget.h +++ b/desktop-widgets/mapwidget.h @@ -37,7 +37,7 @@ public slots: void selectedDivesChanged(QList<int>); void coordinatesChangedLocal(const location_t &); void doneLoading(QQuickWidget::Status status); - void updateDiveSiteCoordinates(struct dive_site *ds, const location_t &); + void diveSiteChanged(struct dive_site *ds, int field); private: static MapWidget *m_instance; |