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>
This commit is contained in:
Lubomir I. Ivanov 2017-07-27 22:43:10 +03:00 committed by Dirk Hohndel
parent f7095aa89e
commit 2dea6f5146
2 changed files with 24 additions and 2 deletions

View file

@ -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;

View file

@ -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