maplocationmodel: add the "namer" property

The MapLocation QObject now has a QString property "name", which is
translating the dive_site->name member.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
This commit is contained in:
Lubomir I. Ivanov 2017-07-25 23:15:28 +03:00 committed by Dirk Hohndel
parent 8c7d1a1163
commit be0d513324
3 changed files with 13 additions and 5 deletions

View file

@ -52,7 +52,7 @@ void MapWidgetHelper::reloadMapLocations()
} }
} }
if (!diveSiteTooClose) if (!diveSiteTooClose)
locationList.append(new MapLocation(ds->uuid, QGeoCoordinate(latitude, longitude))); locationList.append(new MapLocation(ds->uuid, QGeoCoordinate(latitude, longitude), QString(ds->name)));
} }
m_mapLocationModel->addList(locationList); m_mapLocationModel->addList(locationList);
} }

View file

@ -3,13 +3,14 @@
const char *MapLocation::PROPERTY_NAME_COORDINATE = "coordinate"; const char *MapLocation::PROPERTY_NAME_COORDINATE = "coordinate";
const char *MapLocation::PROPERTY_NAME_UUID = "uuid"; const char *MapLocation::PROPERTY_NAME_UUID = "uuid";
const char *MapLocation::PROPERTY_NAME_NAME = "name";
MapLocation::MapLocation() MapLocation::MapLocation()
{ {
} }
MapLocation::MapLocation(quint32 uuid, QGeoCoordinate coord) : MapLocation::MapLocation(quint32 uuid, QGeoCoordinate coord, QString name) :
m_uuid(uuid), m_coordinate(coord) m_uuid(uuid), m_coordinate(coord), m_name(name)
{ {
} }
@ -20,6 +21,8 @@ QVariant MapLocation::getRole(int role) const
return QVariant::fromValue(m_uuid); return QVariant::fromValue(m_uuid);
case Roles::RoleCoordinate: case Roles::RoleCoordinate:
return QVariant::fromValue(m_coordinate); return QVariant::fromValue(m_coordinate);
case Roles::RoleName:
return QVariant::fromValue(m_name);
default: default:
return QVariant(); return QVariant();
} }
@ -29,6 +32,7 @@ MapLocationModel::MapLocationModel(QObject *parent) : QAbstractListModel(parent)
{ {
m_roles[MapLocation::Roles::RoleUuid] = MapLocation::PROPERTY_NAME_UUID; m_roles[MapLocation::Roles::RoleUuid] = MapLocation::PROPERTY_NAME_UUID;
m_roles[MapLocation::Roles::RoleCoordinate] = MapLocation::PROPERTY_NAME_COORDINATE; m_roles[MapLocation::Roles::RoleCoordinate] = MapLocation::PROPERTY_NAME_COORDINATE;
m_roles[MapLocation::Roles::RoleName] = MapLocation::PROPERTY_NAME_NAME;
} }
MapLocationModel::~MapLocationModel() MapLocationModel::~MapLocationModel()

View file

@ -14,24 +14,28 @@ class MapLocation : public QObject
Q_OBJECT Q_OBJECT
Q_PROPERTY(quint32 uuid MEMBER m_uuid) Q_PROPERTY(quint32 uuid MEMBER m_uuid)
Q_PROPERTY(QGeoCoordinate coordinate MEMBER m_coordinate) Q_PROPERTY(QGeoCoordinate coordinate MEMBER m_coordinate)
Q_PROPERTY(QString name MEMBER m_name)
public: public:
static const char *PROPERTY_NAME_COORDINATE; static const char *PROPERTY_NAME_COORDINATE;
static const char *PROPERTY_NAME_UUID; static const char *PROPERTY_NAME_UUID;
static const char *PROPERTY_NAME_NAME;
explicit MapLocation(); explicit MapLocation();
explicit MapLocation(quint32 uuid, QGeoCoordinate coord); explicit MapLocation(quint32 uuid, QGeoCoordinate coord, QString name);
QVariant getRole(int role) const; QVariant getRole(int role) const;
enum Roles { enum Roles {
RoleUuid = Qt::UserRole + 1, RoleUuid = Qt::UserRole + 1,
RoleCoordinate RoleCoordinate,
RoleName
}; };
private: private:
quint32 m_uuid; quint32 m_uuid;
QGeoCoordinate m_coordinate; QGeoCoordinate m_coordinate;
QString m_name;
}; };
class MapLocationModel : public QAbstractListModel class MapLocationModel : public QAbstractListModel