mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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>
This commit is contained in:
parent
4d698310ff
commit
4a004f37ea
2 changed files with 19 additions and 4 deletions
|
@ -29,10 +29,13 @@ MapWidget::MapWidget(QWidget *parent) : QQuickWidget(parent)
|
||||||
m_mapHelper = rootObject()->findChild<MapWidgetHelper *>();
|
m_mapHelper = rootObject()->findChild<MapWidgetHelper *>();
|
||||||
connect(m_mapHelper, SIGNAL(selectedDivesChanged(QList<int>)),
|
connect(m_mapHelper, SIGNAL(selectedDivesChanged(QList<int>)),
|
||||||
this, SLOT(selectedDivesChanged(QList<int>)));
|
this, SLOT(selectedDivesChanged(QList<int>)));
|
||||||
|
connect(m_mapHelper, SIGNAL(coordinatesChanged()),
|
||||||
|
this, SLOT(coordinatesChangedLocal()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MapWidget::centerOnDiveSite(struct dive_site *ds)
|
void MapWidget::centerOnDiveSite(struct dive_site *ds)
|
||||||
{
|
{
|
||||||
|
if (!skipReload)
|
||||||
m_mapHelper->centerOnDiveSite(ds);
|
m_mapHelper->centerOnDiveSite(ds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,23 +55,28 @@ void MapWidget::repopulateLabels()
|
||||||
|
|
||||||
void MapWidget::reload()
|
void MapWidget::reload()
|
||||||
{
|
{
|
||||||
|
setEditMode(false);
|
||||||
if (!skipReload)
|
if (!skipReload)
|
||||||
m_mapHelper->reloadMapLocations();
|
m_mapHelper->reloadMapLocations();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MapWidget::setEditMode(bool editMode)
|
||||||
|
{
|
||||||
|
m_mapHelper->setEditMode(editMode);
|
||||||
|
}
|
||||||
|
|
||||||
void MapWidget::endGetDiveCoordinates()
|
void MapWidget::endGetDiveCoordinates()
|
||||||
{
|
{
|
||||||
// TODO;
|
setEditMode(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MapWidget::prepareForGetDiveCoordinates()
|
void MapWidget::prepareForGetDiveCoordinates()
|
||||||
{
|
{
|
||||||
// TODO;
|
setEditMode(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MapWidget::selectedDivesChanged(QList<int> list)
|
void MapWidget::selectedDivesChanged(QList<int> list)
|
||||||
{
|
{
|
||||||
qDebug() << "onSelectedDivesChanged:" << list.size();
|
|
||||||
skipReload = true;
|
skipReload = true;
|
||||||
MainWindow::instance()->dive_list()->unselectDives();
|
MainWindow::instance()->dive_list()->unselectDives();
|
||||||
if (!list.empty())
|
if (!list.empty())
|
||||||
|
@ -76,6 +84,11 @@ void MapWidget::selectedDivesChanged(QList<int> list)
|
||||||
skipReload = false;
|
skipReload = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MapWidget::coordinatesChangedLocal()
|
||||||
|
{
|
||||||
|
emit coordinatesChanged();
|
||||||
|
}
|
||||||
|
|
||||||
MapWidget::~MapWidget()
|
MapWidget::~MapWidget()
|
||||||
{
|
{
|
||||||
m_instance = NULL;
|
m_instance = NULL;
|
||||||
|
|
|
@ -33,8 +33,10 @@ public slots:
|
||||||
void repopulateLabels();
|
void repopulateLabels();
|
||||||
void prepareForGetDiveCoordinates();
|
void prepareForGetDiveCoordinates();
|
||||||
void selectedDivesChanged(QList<int>);
|
void selectedDivesChanged(QList<int>);
|
||||||
|
void coordinatesChangedLocal();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void setEditMode(bool editMode);
|
||||||
static MapWidget *m_instance;
|
static MapWidget *m_instance;
|
||||||
QQuickItem *m_rootItem;
|
QQuickItem *m_rootItem;
|
||||||
MapWidgetHelper *m_mapHelper;
|
MapWidgetHelper *m_mapHelper;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue