From 7e7dcb2451e02a3c9dc0c314feeef9a68c625b5a Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Fri, 24 Jul 2015 11:17:48 -0700 Subject: QML UI: sort by date, not by date string Just a quick bit of cleanup to separate date (the sortable, numeric value) from the date string that we want to display (but not sort by). Signed-off-by: Dirk Hohndel --- qt-models/divelistmodel.cpp | 26 +++++++++++++++++++------- qt-models/divelistmodel.h | 11 ++++++++--- 2 files changed, 27 insertions(+), 10 deletions(-) (limited to 'qt-models') diff --git a/qt-models/divelistmodel.cpp b/qt-models/divelistmodel.cpp index 8bb895fc8..4019bee8b 100644 --- a/qt-models/divelistmodel.cpp +++ b/qt-models/divelistmodel.cpp @@ -13,8 +13,8 @@ MobileDive::MobileDive(dive *d) //trip is valid setTrip(trip->location); } - - setDate(get_dive_date_string(d->when)); + setDate(d->when); + setDateString(get_dive_date_string(d->when)); setDepth(get_depth_string(d->maxdepth)); setDuration(get_dive_duration_string(d->duration.seconds, "h:","min")); @@ -32,14 +32,24 @@ MobileDive::MobileDive(dive *d) setDivemaster(d->divemaster); } -QString MobileDive::date() const +QString MobileDive::dateString() const +{ + return m_dateString; +} + +void MobileDive::setDateString(const QString &date) +{ + m_dateString = date; +} + +timestamp_t MobileDive::date() const { return m_date; } -void MobileDive::setDate(const QString &date) +void MobileDive::setDate(timestamp_t when) { - m_date = date; + m_date = when; } QString MobileDive::location() const @@ -265,7 +275,9 @@ QVariant DiveListModel::data(const QModelIndex &index, int role) const else if (role == DiveTripRole) return dive.trip(); else if (role == DiveDateRole) - return dive.date(); + return (qlonglong)dive.date(); + else if (role == DiveDateStringRole) + return dive.dateString(); else if (role == DiveRatingRole) return dive.rating(); else if (role == DiveDepthRole) @@ -306,7 +318,7 @@ QHash DiveListModel::roleNames() const QHash roles; roles[DiveNumberRole] = "diveNumber"; roles[DiveTripRole] = "trip"; - roles[DiveDateRole] = "date"; + roles[DiveDateStringRole] = "date"; roles[DiveRatingRole] = "rating"; roles[DiveDepthRole] = "depth"; roles[DiveDurationRole] = "duration"; diff --git a/qt-models/divelistmodel.h b/qt-models/divelistmodel.h index 89f793bbc..de96480bd 100644 --- a/qt-models/divelistmodel.h +++ b/qt-models/divelistmodel.h @@ -8,8 +8,11 @@ class MobileDive { public: MobileDive(dive* d); - QString date() const; - void setDate(const QString &date); + QString dateString() const; + void setDateString(const QString &date); + + timestamp_t date() const; + void setDate(const timestamp_t when); QString location() const; void setLocation(const QString &location); @@ -70,7 +73,8 @@ private: QString m_diveNumber; QString m_trip; - QString m_date; + timestamp_t m_date; + QString m_dateString; QString m_rating; QString m_depth; QString m_duration; @@ -100,6 +104,7 @@ public: DiveNumberRole = Qt::UserRole + 1, DiveTripRole, DiveDateRole, + DiveDateStringRole, DiveRatingRole, DiveDepthRole, DiveDurationRole, -- cgit v1.2.3-70-g09d2