Dive list model: add GPS string access

If the QML UI needs the GPS information, we need a way to get to it.
I'm not convinced that having it as comma separated string is the best way to
go, but that's what I need for the Google API so that's what I picked for now.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2015-12-26 13:19:43 -08:00
parent 07a0ef2139
commit 7ffe7a8c8a
4 changed files with 21 additions and 0 deletions

View file

@ -77,6 +77,8 @@ QVariant DiveListModel::data(const QModelIndex &index, int role) const
return dive.sac();
else if (role == DiveLocationRole)
return dive.location();
else if (role == DiveGPSRole)
return dive.gps();
else if (role == DiveNotesRole)
return dive.notes();
else if (role == DiveBuddyRole)
@ -107,6 +109,7 @@ QHash<int, QByteArray> DiveListModel::roleNames() const
roles[DiveGasRole] = "gas";
roles[DiveSacRole] = "sac";
roles[DiveLocationRole] = "location";
roles[DiveGPSRole] = "gps";
roles[DiveNotesRole] = "notes";
roles[DiveBuddyRole] = "buddy";
roles[DiveMasterRole] = "divemaster";

View file

@ -26,6 +26,7 @@ public:
DiveGasRole,
DiveSacRole,
DiveLocationRole,
DiveGPSRole,
DiveNotesRole,
DiveBuddyRole,
DiveMasterRole,

View file

@ -80,6 +80,10 @@ QString Dive::location() const
return m_location;
}
QString Dive::gps() const
{
return m_gps;
}
QString Dive::duration() const
{
return m_duration;
@ -222,6 +226,15 @@ void Dive::put_location()
}
}
void Dive::put_gps()
{
struct dive_site *ds = get_dive_site_by_uuid(dive->dive_site_uuid);
if (ds)
m_gps = QString("%1,%2").arg(ds->latitude.udeg / 1000000.0).arg(ds->longitude.udeg / 1000000.0);
else
m_gps = QString();
}
void Dive::put_depth()
{
m_depth = get_depth_string(dive->dc.maxdepth.mm, true, true);

View file

@ -18,6 +18,7 @@ private:
timestamp_t m_timestamp;
QString m_time;
QString m_location;
QString m_gps;
QString m_duration;
QString m_depth;
QString m_divemaster;
@ -38,6 +39,7 @@ private:
void put_date_time();
void put_timestamp();
void put_location();
void put_gps();
void put_duration();
void put_depth();
void put_divemaster();
@ -63,6 +65,7 @@ public:
m_rating = dive->rating;
put_date_time();
put_location();
put_gps();
put_duration();
put_depth();
put_divemaster();
@ -89,6 +92,7 @@ public:
timestamp_t timestamp() const;
QString time() const;
QString location() const;
QString gps() const;
QString duration() const;
QString depth() const;
QString divemaster() const;