From 4a004f37eac32c2c84b5453d9d6b12a5bf06e8c2 Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Thu, 27 Jul 2017 23:59:30 +0300 Subject: mapwidget: add a method to set update editMode in MapWidgetHelper The local slot coordinatesChangedLocal() tracks the MapWidgetHelper coordinatesChanged() signal and emit a coordinatesChanged() signal to any listeners (e.g. MainWindow). Also add a small change in centerOnDiveSite(), to not be called if we are skipping the reload (skipReload is updated by selectedDivesChanged()). Signed-off-by: Lubomir I. Ivanov --- desktop-widgets/mapwidget.cpp | 21 +++++++++++++++++---- desktop-widgets/mapwidget.h | 2 ++ 2 files changed, 19 insertions(+), 4 deletions(-) (limited to 'desktop-widgets') diff --git a/desktop-widgets/mapwidget.cpp b/desktop-widgets/mapwidget.cpp index 4ac394b4e..0b7624371 100644 --- a/desktop-widgets/mapwidget.cpp +++ b/desktop-widgets/mapwidget.cpp @@ -29,11 +29,14 @@ MapWidget::MapWidget(QWidget *parent) : QQuickWidget(parent) m_mapHelper = rootObject()->findChild(); connect(m_mapHelper, SIGNAL(selectedDivesChanged(QList)), this, SLOT(selectedDivesChanged(QList))); + connect(m_mapHelper, SIGNAL(coordinatesChanged()), + this, SLOT(coordinatesChangedLocal())); } void MapWidget::centerOnDiveSite(struct dive_site *ds) { - m_mapHelper->centerOnDiveSite(ds); + if (!skipReload) + m_mapHelper->centerOnDiveSite(ds); } void MapWidget::centerOnIndex(const QModelIndex& idx) @@ -52,23 +55,28 @@ void MapWidget::repopulateLabels() void MapWidget::reload() { + setEditMode(false); if (!skipReload) m_mapHelper->reloadMapLocations(); } +void MapWidget::setEditMode(bool editMode) +{ + m_mapHelper->setEditMode(editMode); +} + void MapWidget::endGetDiveCoordinates() { - // TODO; + setEditMode(false); } void MapWidget::prepareForGetDiveCoordinates() { - // TODO; + setEditMode(true); } void MapWidget::selectedDivesChanged(QList list) { - qDebug() << "onSelectedDivesChanged:" << list.size(); skipReload = true; MainWindow::instance()->dive_list()->unselectDives(); if (!list.empty()) @@ -76,6 +84,11 @@ void MapWidget::selectedDivesChanged(QList list) skipReload = false; } +void MapWidget::coordinatesChangedLocal() +{ + emit coordinatesChanged(); +} + MapWidget::~MapWidget() { m_instance = NULL; diff --git a/desktop-widgets/mapwidget.h b/desktop-widgets/mapwidget.h index 5a79cd68d..49d94608a 100644 --- a/desktop-widgets/mapwidget.h +++ b/desktop-widgets/mapwidget.h @@ -33,8 +33,10 @@ public slots: void repopulateLabels(); void prepareForGetDiveCoordinates(); void selectedDivesChanged(QList); + void coordinatesChangedLocal(); private: + void setEditMode(bool editMode); static MapWidget *m_instance; QQuickItem *m_rootItem; MapWidgetHelper *m_mapHelper; -- cgit v1.2.3-70-g09d2