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>
This commit is contained in:
Berthold Stoeger 2019-12-21 20:41:06 +01:00 committed by Dirk Hohndel
parent dd8d8edc45
commit 69516c37ec
3 changed files with 8 additions and 0 deletions

View file

@ -313,6 +313,7 @@ Kirigami.Page {
highlightRangeMode: ListView.StrictlyEnforceRange
onMovementEnded: {
currentIndex = indexAt(contentX+1, 1);
manager.selectSwipeRow(currentIndex)
}
delegate: Flickable {
id: internalScrollView

View file

@ -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();

View file

@ -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);