aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qt-mobile/qml/DiveList.qml16
-rw-r--r--subsurface-core/subsurface-qt/DiveObjectHelper.cpp10
-rw-r--r--subsurface-core/subsurface-qt/DiveObjectHelper.h2
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;