Map: make edit mode depend on dive-site-filtering

Since the dive-site-filter is active either on the dive-site-edit
page or the dive-site-list page, use that as the flag for dive-site-edit
mode. Moreover, when the filter is reset, the
MapWidgetHelper::reloadMapLocations() function is called, so we
can use that place to enter/exit edit mode.

This makes it easier to keep everything consistent.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2019-05-03 23:16:40 +02:00 committed by Dirk Hohndel
parent b6d830f004
commit d29f82c52d
7 changed files with 29 additions and 34 deletions

View file

@ -182,7 +182,6 @@ void LocationInformationWidget::acceptChanges()
MainWindow::instance()->diveList->setEnabled(true);
MainWindow::instance()->setEnabledToolbar(true);
MainWindow::instance()->setApplicationState("Default");
MapWidget::instance()->endGetDiveCoordinates();
MapWidget::instance()->repopulateLabels();
MultiFilterSortModel::instance()->stopFilterDiveSites();
}
@ -200,7 +199,6 @@ void LocationInformationWidget::initFields(dive_site *ds)
filter_model.set(0, location_t { degrees_t{ 0 }, degrees_t{ 0 } });
clearLabels();
}
MapWidget::instance()->prepareForGetDiveCoordinates(ds);
}
void LocationInformationWidget::on_diveSiteCoordinates_editingFinished()

View file

@ -84,24 +84,6 @@ void MapWidget::reload()
}
}
void MapWidget::endGetDiveCoordinates()
{
CHECK_IS_READY_RETURN_VOID();
skipReload = false;
m_mapHelper->exitEditMode();
}
void MapWidget::prepareForGetDiveCoordinates(struct dive_site *ds)
{
CHECK_IS_READY_RETURN_VOID();
m_mapHelper->enterEditMode(ds);
// Ignore any reload signals during edit mode to avoid showing all flags when in edit mode.
// This can happen for example when the filter is reset.
skipReload = true;
}
void MapWidget::selectedDivesChanged(const QList<int> &list)
{
CHECK_IS_READY_RETURN_VOID();

View file

@ -27,9 +27,7 @@ public:
public slots:
void centerOnDiveSite(struct dive_site *);
void centerOnIndex(const QModelIndex& idx);
void endGetDiveCoordinates();
void repopulateLabels();
void prepareForGetDiveCoordinates(struct dive_site *ds);
void selectedDivesChanged(const QList<int> &);
void coordinatesChanged(struct dive_site *ds, const location_t &);
void doneLoading(QQuickWidget::Status status);