mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-19 14:25:27 +00:00
0aef04352a
The dive site list was connected to centerOnDiveSite(). Apparently, the currently selected dive site should have been shown in the map. Yet, this never worked, because the actual dive site of the selected dive had precedence in centerOnDiveSite(). It seems that centerOnDiveSite() had actually to purposes: 1) center on the passed in dive site 2) center on the dive sites of the selected dives Therefore, split this function in two separate functions for each of these use-cases. This allows us to remove some pre-processor magic (mobile vs. desktop) and to remove a parameter from the MainTab::diveSiteChanged() signal. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
48 lines
969 B
C++
48 lines
969 B
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef MAPWIDGET_H
|
|
#define MAPWIDGET_H
|
|
|
|
#include <QQuickWidget>
|
|
#include <QList>
|
|
|
|
#undef IGNORE
|
|
|
|
class QResizeEvent;
|
|
class QQuickItem;
|
|
class MapWidgetHelper;
|
|
struct dive_site;
|
|
|
|
class MapWidget : public QQuickWidget {
|
|
|
|
Q_OBJECT
|
|
|
|
public:
|
|
MapWidget(QWidget *parent = NULL);
|
|
~MapWidget();
|
|
|
|
static MapWidget *instance();
|
|
void reload();
|
|
|
|
signals:
|
|
void coordinatesChanged();
|
|
|
|
public slots:
|
|
void centerOnSelectedDiveSite();
|
|
void centerOnDiveSite(struct dive_site *);
|
|
void centerOnIndex(const QModelIndex& idx);
|
|
void endGetDiveCoordinates();
|
|
void repopulateLabels();
|
|
void prepareForGetDiveCoordinates();
|
|
void selectedDivesChanged(QList<int>);
|
|
void coordinatesChangedLocal();
|
|
void doneLoading(QQuickWidget::Status status);
|
|
void updateCurrentDiveSiteCoordinatesToMap();
|
|
|
|
private:
|
|
void setEditMode(bool editMode);
|
|
static MapWidget *m_instance;
|
|
QQuickItem *m_rootItem;
|
|
MapWidgetHelper *m_mapHelper;
|
|
};
|
|
|
|
#endif // MAPWIDGET_H
|