diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2017-07-27 22:43:10 +0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2017-07-28 07:31:11 -0700 |
commit | 2dea6f514696ea8e740c9028b7426f958bfb2c96 (patch) | |
tree | 112f902e33c8d1e4e8fdd171380dd8136bad3219 /qt-models | |
parent | f7095aa89e9d27e006a6d75564ba5b9fa63554a5 (diff) | |
download | subsurface-2dea6f514696ea8e740c9028b7426f958bfb2c96.tar.gz |
maplocation: add helpers for coordinate and uuid
getRole() returns a QVariant and the cast is a small overhead.
Using these helpers will reduce the overhead.
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Diffstat (limited to 'qt-models')
-rw-r--r-- | qt-models/maplocationmodel.cpp | 16 | ||||
-rw-r--r-- | qt-models/maplocationmodel.h | 10 |
2 files changed, 24 insertions, 2 deletions
diff --git a/qt-models/maplocationmodel.cpp b/qt-models/maplocationmodel.cpp index 8ce5e3020..152688367 100644 --- a/qt-models/maplocationmodel.cpp +++ b/qt-models/maplocationmodel.cpp @@ -28,6 +28,22 @@ QVariant MapLocation::getRole(int role) const }
}
+QGeoCoordinate MapLocation::coordinate()
+{
+ return m_coordinate;
+}
+
+void MapLocation::setCoordinate(QGeoCoordinate coord)
+{
+ m_coordinate = coord;
+ emit coordinateChanged();
+}
+
+quint32 MapLocation::uuid()
+{
+ return m_uuid;
+}
+
MapLocationModel::MapLocationModel(QObject *parent) : QAbstractListModel(parent)
{
m_roles[MapLocation::Roles::RoleUuid] = MapLocation::PROPERTY_NAME_UUID;
diff --git a/qt-models/maplocationmodel.h b/qt-models/maplocationmodel.h index 9076de21d..3da554a09 100644 --- a/qt-models/maplocationmodel.h +++ b/qt-models/maplocationmodel.h @@ -12,8 +12,8 @@ class MapLocation : public QObject { Q_OBJECT - Q_PROPERTY(quint32 uuid MEMBER m_uuid) - Q_PROPERTY(QGeoCoordinate coordinate MEMBER m_coordinate) + Q_PROPERTY(quint32 uuid READ uuid) + Q_PROPERTY(QGeoCoordinate coordinate READ coordinate WRITE setCoordinate NOTIFY coordinateChanged) Q_PROPERTY(QString name MEMBER m_name) public: @@ -25,6 +25,9 @@ public: explicit MapLocation(quint32 uuid, QGeoCoordinate coord, QString name); QVariant getRole(int role) const; + QGeoCoordinate coordinate(); + void setCoordinate(QGeoCoordinate coord); + quint32 uuid(); enum Roles { RoleUuid = Qt::UserRole + 1, @@ -36,6 +39,9 @@ private: quint32 m_uuid; QGeoCoordinate m_coordinate; QString m_name; + +signals: + void coordinateChanged(); }; class MapLocationModel : public QAbstractListModel |