diff options
-rw-r--r-- | qt-mobile/main.qml | 45 | ||||
-rw-r--r-- | qt-models/divelistmodel.cpp | 21 | ||||
-rw-r--r-- | qt-models/divelistmodel.h | 5 |
3 files changed, 51 insertions, 20 deletions
diff --git a/qt-mobile/main.qml b/qt-mobile/main.qml index 0b03b6db4..8518f84df 100644 --- a/qt-mobile/main.qml +++ b/qt-mobile/main.qml @@ -72,21 +72,18 @@ ApplicationWindow { //And other details at the bottom. Row { id: topLayout - x: 10; y: 10; height: 50; width: parent.width + x: 10; y: 10; height: 60; width: parent.width spacing: 10 Column { - width: background.width; height: 50 + width: background.width; height: 60 spacing: 5 Text { text: diveNumber + ' (' + date + ')' - font.bold: true; font.pointSize: 16 - } - - Text { - text: location } + Text { text: location; width: details.width } + Text { text: '<b>Depth:</b> ' + depth + ' <b>Duration:</b>' + duration; width: details.width } } } @@ -109,19 +106,8 @@ ApplicationWindow { anchors { top: detailsTitle.bottom; bottom: parent.bottom } contentHeight: detailsView.height clip: true - - Column { - Row { - Text { text: 'Duration: ' + duration; width: details.width } - } - - Row { - Text { text: 'Depth: ' + depth; width: details.width } - } - - Row { - Text { text: 'Notes: ' + notes; wrapMode: Text.WordWrap; width: details.width } - } + Row { + Text { text: 'Notes: ' + notes; wrapMode: Text.WordWrap; width: details.width } } } } @@ -179,12 +165,31 @@ ApplicationWindow { } } + Component { + id: tripHeading + Rectangle { + width: page.width + height: childrenRect.height + color: "lightsteelblue" + + Text { + text: section + font.bold: true + font.pointSize: 16 + } + } + } + ListView { id: diveListView anchors.fill: parent model: diveModel delegate: diveDelegate focus: true + + section.property: "trip" + section.criteria: ViewSection.FullString + section.delegate: tripHeading } } } diff --git a/qt-models/divelistmodel.cpp b/qt-models/divelistmodel.cpp index c1862b829..ad360965f 100644 --- a/qt-models/divelistmodel.cpp +++ b/qt-models/divelistmodel.cpp @@ -5,6 +5,14 @@ Dive::Dive(dive *d) { m_thisDive = d; setDiveNumber(QString::number(d->number)); + + dive_trip *trip = d->divetrip; + + if(trip) { + //trip is valid + setTrip(trip->location); + } + setDate(get_dive_date_string(d->when)); setDepth(get_depth_string(d->maxdepth)); setDuration(get_dive_duration_string(d->duration.seconds, "h:","min")); @@ -153,6 +161,16 @@ void Dive::setNotes(const QString ¬es) { m_notes = notes; } +QString Dive::trip() const +{ + return m_trip; +} + +void Dive::setTrip(const QString &trip) +{ + m_trip = trip; +} + @@ -184,6 +202,8 @@ QVariant DiveListModel::data(const QModelIndex &index, int role) const if (role == DiveNumberRole) return dive.diveNumber(); + else if (role == DiveTripRole) + return dive.trip(); else if (role == DiveDateRole) return dive.date(); else if (role == DiveRatingRole) @@ -217,6 +237,7 @@ QHash<int, QByteArray> DiveListModel::roleNames() const { QHash<int, QByteArray> roles; roles[DiveNumberRole] = "diveNumber"; + roles[DiveTripRole] = "trip"; roles[DiveDateRole] = "date"; roles[DiveRatingRole] = "rating"; roles[DiveDepthRole] = "depth"; diff --git a/qt-models/divelistmodel.h b/qt-models/divelistmodel.h index 307008cc1..f58040508 100644 --- a/qt-models/divelistmodel.h +++ b/qt-models/divelistmodel.h @@ -50,8 +50,12 @@ public: QString notes() const; void setNotes(const QString ¬es); + QString trip() const; + void setTrip(const QString &trip); + private: QString m_diveNumber; + QString m_trip; QString m_date; QString m_rating; QString m_depth; @@ -76,6 +80,7 @@ public: enum DiveListRoles { DiveNumberRole = Qt::UserRole + 1, + DiveTripRole, DiveDateRole, DiveRatingRole, DiveDepthRole, |