mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	This patch allows updating the location of map markers while editing a dive site and updating the text in the LocationInformationWidget in real-time. Currently it is only possible to see the marker changes by clicking 'Apply'. The modification required the following changes: - add the MapWidget::updateCurrentDiveSiteCoordinatesToMap() slot and call it each time the GPS text updates - separate the updateCurrentDiveSiteCoordinates(FromMap/ToMap) logic by having the FromMap/ToMap suffix to method names - make MapWidgetHelper::updateCurrentDiveSiteCoordinatesToMap() call a new MapLocationModel::updateMapLocationCoordinates() method, which updates selected location coordinates and the model - add MapLocation::setCoordinateNoEmit() that does not emit a signal when updating a coordinate Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			935 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			935 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 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
 |