diff options
-rw-r--r-- | qt-mobile/qml/DiveList.qml | 16 | ||||
-rw-r--r-- | subsurface-core/subsurface-qt/DiveObjectHelper.cpp | 10 | ||||
-rw-r--r-- | subsurface-core/subsurface-qt/DiveObjectHelper.h | 2 |
3 files changed, 26 insertions, 2 deletions
diff --git a/qt-mobile/qml/DiveList.qml b/qt-mobile/qml/DiveList.qml index 21858afb4..7b300ed24 100644 --- a/qt-mobile/qml/DiveList.qml +++ b/qt-mobile/qml/DiveList.qml @@ -106,7 +106,19 @@ MobileComponents.Page { MobileComponents.Heading { id: sectionText - text: {section == "--" ? "" : section } + text: { + // if the tripMeta (which we get as "section") ends in ::-- we know + // that there's no trip -- otherwise strip the meta information before + // the :: and show the trip location + var shownText + var endsWithDoubleDash = /::--$/; + if (endsWithDoubleDash.test(section)) { + shownText = "" + } else { + shownText = section.replace(/.*::/, "") + } + shownText + } anchors { top: parent.top left: parent.left @@ -150,7 +162,7 @@ MobileComponents.Page { boundsBehavior: Flickable.StopAtBounds maximumFlickVelocity: parent.height * 5 cacheBuffer: 0 // seems to avoid empty rendered profiles - section.property: "dive.trip" + section.property: "dive.tripMeta" section.criteria: ViewSection.FullString section.delegate: tripHeading header: MobileComponents.Heading { diff --git a/subsurface-core/subsurface-qt/DiveObjectHelper.cpp b/subsurface-core/subsurface-qt/DiveObjectHelper.cpp index 78c1dfc63..e29bd3802 100644 --- a/subsurface-core/subsurface-qt/DiveObjectHelper.cpp +++ b/subsurface-core/subsurface-qt/DiveObjectHelper.cpp @@ -219,6 +219,16 @@ QString DiveObjectHelper::trip() const return m_dive->divetrip ? m_dive->divetrip->location : EMPTY_DIVE_STRING; } +// combine the pointer address with the trip location so that +// we detect multiple, destinct trips to the same location +QString DiveObjectHelper::tripMeta() const +{ + QString ret = EMPTY_DIVE_STRING; + if (m_dive->divetrip) + ret = QString::number((quint64)m_dive->divetrip, 16) + QLatin1Literal("::") + m_dive->divetrip->location; + return ret; +} + QString DiveObjectHelper::maxcns() const { return QString(m_dive->maxcns); diff --git a/subsurface-core/subsurface-qt/DiveObjectHelper.h b/subsurface-core/subsurface-qt/DiveObjectHelper.h index 4d1e1acb2..84c93465e 100644 --- a/subsurface-core/subsurface-qt/DiveObjectHelper.h +++ b/subsurface-core/subsurface-qt/DiveObjectHelper.h @@ -29,6 +29,7 @@ class DiveObjectHelper : public QObject { Q_PROPERTY(QString suit READ suit CONSTANT) Q_PROPERTY(QStringList cylinders READ cylinders CONSTANT) Q_PROPERTY(QString trip READ trip CONSTANT) + Q_PROPERTY(QString tripMeta READ tripMeta CONSTANT) Q_PROPERTY(QString maxcns READ maxcns CONSTANT) Q_PROPERTY(QString otu READ otu CONSTANT) public: @@ -58,6 +59,7 @@ public: QStringList cylinders() const; QString cylinder(int idx) const; QString trip() const; + QString tripMeta() const; QString maxcns() const; QString otu() const; |