summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qt-models/maplocationmodel.cpp16
-rw-r--r--qt-models/maplocationmodel.h6
2 files changed, 22 insertions, 0 deletions
diff --git a/qt-models/maplocationmodel.cpp b/qt-models/maplocationmodel.cpp
index 8e07a7489..e01b46621 100644
--- a/qt-models/maplocationmodel.cpp
+++ b/qt-models/maplocationmodel.cpp
@@ -92,3 +92,19 @@ void MapLocationModel::clear()
m_mapLocations.clear();
endRemoveRows();
}
+
+quint32 MapLocationModel::selectedUuid()
+{
+ return m_selectedUuid;
+}
+
+void MapLocationModel::setSelectedUuid(quint32 uuid)
+{
+ m_selectedUuid = uuid;
+ MapLocation *location = NULL;
+ foreach(location, m_mapLocations) {
+ if (location->getRole(MapLocation::Roles::RoleUuid) == uuid)
+ break;
+ }
+ emit selectedLocationChanged(location);
+}
diff --git a/qt-models/maplocationmodel.h b/qt-models/maplocationmodel.h
index 2793a5137..7a1730653 100644
--- a/qt-models/maplocationmodel.h
+++ b/qt-models/maplocationmodel.h
@@ -38,6 +38,7 @@ class MapLocationModel : public QAbstractListModel
{
Q_OBJECT
Q_PROPERTY(int count READ count NOTIFY countChanged)
+ Q_PROPERTY(quint32 selectedUuid READ selectedUuid WRITE setSelectedUuid NOTIFY selectedLocationChanged)
public:
MapLocationModel(QObject *parent = NULL);
@@ -56,11 +57,16 @@ protected:
QHash<int, QByteArray> roleNames() const;
private:
+ quint32 selectedUuid();
+ void setSelectedUuid(quint32);
+
QVector<MapLocation *> m_mapLocations;
QHash<int, QByteArray> m_roles;
+ quint32 m_selectedUuid;
signals:
void countChanged(int c);
+ void selectedLocationChanged(MapLocation *);
};