summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-12-21 20:41:06 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-03-10 09:25:57 -0700
commit69516c37ec076c20a41e747e83e01ce429729ec7 (patch)
tree44cd91907553f8a4835696c4aa35e68271e80f92
parentdd8d8edc45dad1316aa5b5470247e14fb75d67e1 (diff)
downloadsubsurface-69516c37ec076c20a41e747e83e01ce429729ec7.tar.gz
mobile/divelist: select dive after swipe
After swiping through the dive list, select the currently visible dive. Thus, the dive is highlighted in the overview pane. The connection with the QMLManager feels atrocious, but I would prefer to have as little logic in QML as possible. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r--mobile-widgets/qml/DiveDetails.qml1
-rw-r--r--mobile-widgets/qmlmanager.cpp6
-rw-r--r--mobile-widgets/qmlmanager.h1
3 files changed, 8 insertions, 0 deletions
diff --git a/mobile-widgets/qml/DiveDetails.qml b/mobile-widgets/qml/DiveDetails.qml
index 66e082163..616b4e724 100644
--- a/mobile-widgets/qml/DiveDetails.qml
+++ b/mobile-widgets/qml/DiveDetails.qml
@@ -313,6 +313,7 @@ Kirigami.Page {
highlightRangeMode: ListView.StrictlyEnforceRange
onMovementEnded: {
currentIndex = indexAt(contentX+1, 1);
+ manager.selectSwipeRow(currentIndex)
}
delegate: Flickable {
id: internalScrollView
diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp
index 0c434a4a9..c5b025dde 100644
--- a/mobile-widgets/qmlmanager.cpp
+++ b/mobile-widgets/qmlmanager.cpp
@@ -378,6 +378,12 @@ void QMLManager::selectRow(int row)
select_single_dive(d);
}
+void QMLManager::selectSwipeRow(int row)
+{
+ dive *d = diveInRow(MobileModels::instance()->swipeModel(), row);
+ select_single_dive(d);
+}
+
void QMLManager::updateSiteList()
{
LocationInformationModel::instance()->update();
diff --git a/mobile-widgets/qmlmanager.h b/mobile-widgets/qmlmanager.h
index 5a3662bfb..c5d480283 100644
--- a/mobile-widgets/qmlmanager.h
+++ b/mobile-widgets/qmlmanager.h
@@ -107,6 +107,7 @@ public:
Q_INVOKABLE void setGitLocalOnly(const bool &value);
Q_INVOKABLE void setFilter(const QString filterText, int mode);
Q_INVOKABLE void selectRow(int row);
+ Q_INVOKABLE void selectSwipeRow(int row);
static QMLManager *instance();
Q_INVOKABLE void registerError(QString error);