diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2019-12-21 20:41:06 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2020-03-10 09:25:57 -0700 |
commit | 69516c37ec076c20a41e747e83e01ce429729ec7 (patch) | |
tree | 44cd91907553f8a4835696c4aa35e68271e80f92 | |
parent | dd8d8edc45dad1316aa5b5470247e14fb75d67e1 (diff) | |
download | subsurface-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.qml | 1 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.cpp | 6 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.h | 1 |
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); |