summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2017-07-27 23:59:30 +0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-07-28 07:31:11 -0700
commit4a004f37eac32c2c84b5453d9d6b12a5bf06e8c2 (patch)
tree7c6b20f48aede94b11f0dddb1c063b10699c9f74
parent4d698310ff830462b7d5fad7d449bedc45aa50cb (diff)
downloadsubsurface-4a004f37eac32c2c84b5453d9d6b12a5bf06e8c2.tar.gz
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 <neolit123@gmail.com>
-rw-r--r--desktop-widgets/mapwidget.cpp21
-rw-r--r--desktop-widgets/mapwidget.h2
2 files changed, 19 insertions, 4 deletions
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<MapWidgetHelper *>();
connect(m_mapHelper, SIGNAL(selectedDivesChanged(QList<int>)),
this, SLOT(selectedDivesChanged(QList<int>)));
+ 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<int> list)
{
- qDebug() << "onSelectedDivesChanged:" << list.size();
skipReload = true;
MainWindow::instance()->dive_list()->unselectDives();
if (!list.empty())
@@ -76,6 +84,11 @@ void MapWidget::selectedDivesChanged(QList<int> 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<int>);
+ void coordinatesChangedLocal();
private:
+ void setEditMode(bool editMode);
static MapWidget *m_instance;
QQuickItem *m_rootItem;
MapWidgetHelper *m_mapHelper;