mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
QML UI: keep QML manager and the UI in sync about selected dive
The manager can now directly update the index of the selected dive, and the UI tells the manager the timestamp of the currently selected dive. This allows the manager to pick the best possible dive as selected dive if things change (for example if the dive list gets reloaded because it changed in cloud storage). Fixes #1009 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
5909e438c9
commit
6e6cce770b
3 changed files with 50 additions and 0 deletions
|
|
@ -9,6 +9,7 @@ import org.kde.kirigami 1.0 as Kirigami
|
|||
Kirigami.Page {
|
||||
id: diveDetailsPage
|
||||
property alias currentIndex: diveDetailsListView.currentIndex
|
||||
property alias currentItem: diveDetailsListView.currentItem
|
||||
property alias dive_id: detailsEdit.dive_id
|
||||
property alias number: detailsEdit.number
|
||||
property alias date: detailsEdit.dateText
|
||||
|
|
@ -25,6 +26,7 @@ Kirigami.Page {
|
|||
property alias startpressure: detailsEdit.startpressureText
|
||||
property alias endpressure: detailsEdit.endpressureText
|
||||
property alias gasmix: detailsEdit.gasmixText
|
||||
property int updateCurrentIdx: manager.updateSelectedDive
|
||||
|
||||
title: diveDetailsListView.currentItem ? diveDetailsListView.currentItem.modelData.dive.location : "Dive details"
|
||||
state: "view"
|
||||
|
|
@ -108,6 +110,17 @@ Kirigami.Page {
|
|||
// if we were in view mode, don't accept the event and pop the page
|
||||
}
|
||||
|
||||
onUpdateCurrentIdxChanged: {
|
||||
if (diveDetailsListView.currentIndex != updateCurrentIdx) {
|
||||
diveDetailsListView.currentIndex = updateCurrentIdx
|
||||
manager.selectedDiveTimestamp = diveDetailsListView.currentItem.modelData.dive.timestamp
|
||||
}
|
||||
}
|
||||
|
||||
onCurrentItemChanged: {
|
||||
manager.selectedDiveTimestamp = diveDetailsListView.currentItem.modelData.dive.timestamp
|
||||
}
|
||||
|
||||
function showDiveIndex(index) {
|
||||
currentIndex = index;
|
||||
diveDetailsListView.positionViewAtIndex(index, ListView.Beginning);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue