mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Commit df156a56c0 replaced "virtual"
by "override" where appropriate. Unfortunately, this had the
unintended consequence of producing numerous clang warnings. If
clang finds a override-modified function in a class definition,
it warns for *all* overriden virtual functions without the override
modifier.
To solve this, go the easy route and remove all overrides. At least
it is consistent.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
		
	
			
		
			
				
	
	
		
			84 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0
 | |
| #ifndef MAPLOCATIONMODEL_H
 | |
| #define MAPLOCATIONMODEL_H
 | |
| 
 | |
| #include <QObject>
 | |
| #include <QVector>
 | |
| #include <QHash>
 | |
| #include <QByteArray>
 | |
| #include <QAbstractListModel>
 | |
| #include <QGeoCoordinate>
 | |
| 
 | |
| class MapLocation : public QObject
 | |
| {
 | |
| 	Q_OBJECT
 | |
| 	Q_PROPERTY(quint32 uuid READ uuid)
 | |
| 	Q_PROPERTY(QGeoCoordinate coordinate READ coordinate WRITE setCoordinate NOTIFY coordinateChanged)
 | |
| 	Q_PROPERTY(QString name MEMBER m_name)
 | |
| 
 | |
| public:
 | |
| 	static const char *PROPERTY_NAME_COORDINATE;
 | |
| 	static const char *PROPERTY_NAME_UUID;
 | |
| 	static const char *PROPERTY_NAME_NAME;
 | |
| 
 | |
| 	explicit MapLocation();
 | |
| 	explicit MapLocation(quint32 uuid, QGeoCoordinate coord, QString name);
 | |
| 
 | |
| 	QVariant getRole(int role) const;
 | |
| 	QGeoCoordinate coordinate();
 | |
| 	void setCoordinate(QGeoCoordinate coord);
 | |
| 	void setCoordinateNoEmit(QGeoCoordinate coord);
 | |
| 	quint32 uuid();
 | |
| 
 | |
| 	enum Roles {
 | |
| 		RoleUuid = Qt::UserRole + 1,
 | |
| 		RoleCoordinate,
 | |
| 		RoleName
 | |
| 	};
 | |
| 
 | |
| private:
 | |
| 	quint32 m_uuid;
 | |
| 	QGeoCoordinate m_coordinate;
 | |
| 	QString m_name;
 | |
| 
 | |
| signals:
 | |
| 	void coordinateChanged();
 | |
| };
 | |
| 
 | |
| class MapLocationModel : public QAbstractListModel
 | |
| {
 | |
| 	Q_OBJECT
 | |
| 	Q_PROPERTY(int count READ count NOTIFY countChanged)
 | |
| 	Q_PROPERTY(quint32 selectedUuid READ selectedUuid NOTIFY selectedUuidChanged)
 | |
| 
 | |
| public:
 | |
| 	MapLocationModel(QObject *parent = NULL);
 | |
| 	~MapLocationModel();
 | |
| 
 | |
| 	Q_INVOKABLE MapLocation *get(int row);
 | |
| 	QVariant data(const QModelIndex &index, int role) const;
 | |
| 	int rowCount(const QModelIndex &parent) const;
 | |
| 	int count();
 | |
| 	void add(MapLocation *);
 | |
| 	void addList(QVector<MapLocation *>);
 | |
| 	void clear();
 | |
| 	MapLocation *getMapLocationForUuid(quint32 uuid);
 | |
| 	void updateMapLocationCoordinates(quint32 uuid, QGeoCoordinate coord);
 | |
| 	Q_INVOKABLE void setSelectedUuid(QVariant uuid, QVariant fromClick = true);
 | |
| 	quint32 selectedUuid();
 | |
| 
 | |
| protected:
 | |
| 	QHash<int, QByteArray> roleNames() const;
 | |
| 
 | |
| private:
 | |
| 	QVector<MapLocation *> m_mapLocations;
 | |
| 	QHash<int, QByteArray> m_roles;
 | |
| 	quint32 m_selectedUuid;
 | |
| 
 | |
| signals:
 | |
| 	void countChanged(int c);
 | |
| 	void selectedUuidChanged();
 | |
| 	void selectedLocationChanged(MapLocation *);
 | |
| };
 | |
| 
 | |
| #endif
 |