From 69516c37ec076c20a41e747e83e01ce429729ec7 Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Sat, 21 Dec 2019 20:41:06 +0100 Subject: 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 --- mobile-widgets/qml/DiveDetails.qml | 1 + mobile-widgets/qmlmanager.cpp | 6 ++++++ mobile-widgets/qmlmanager.h | 1 + 3 files changed, 8 insertions(+) (limited to 'mobile-widgets') 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); -- cgit v1.2.3-70-g09d2