mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-19 14:25:27 +00:00
Mobile: disconnect model while updating dive list
If the dive list is connected to the model while the model is updated with the downloaded dives, sometimes the UI hangs completely. Disconnecting the model and then reconnecting it does add a fairly noticeable delay on longer dive lists, so there are tradeoffs here. Of course the obvious solution is to make reconnecting the model faster... Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
113cb1acc0
commit
9f34f4f97d
2 changed files with 20 additions and 2 deletions
|
@ -385,19 +385,28 @@ Kirigami.Page {
|
|||
text: qsTr("Accept")
|
||||
bottomPadding: Kirigami.Units.gridUnit / 2
|
||||
onClicked: {
|
||||
manager.appendTextToLog("Save downloaded dives that were selected")
|
||||
busy = true
|
||||
rootItem.showBusy()
|
||||
manager.appendTextToLog("Save downloaded dives that were selected")
|
||||
manager.appendTextToLog("temporary disconnecting dive list model")
|
||||
diveList.diveListModel = null
|
||||
manager.appendTextToLog("Record dives")
|
||||
importModel.recordDives()
|
||||
manager.saveChangesLocal()
|
||||
manager.appendTextToLog("resetting model and refreshing the dive list")
|
||||
diveModel.resetInternalData()
|
||||
manager.refreshDiveList()
|
||||
manager.appendTextToLog("pageStack popping Download page")
|
||||
pageStack.pop()
|
||||
pageStack.push(diveList)
|
||||
manager.appendTextToLog("setting up the dive list model again")
|
||||
diveList.diveListModel = diveModel
|
||||
manager.appendTextToLog("pageStack switching to dive list")
|
||||
showDiveList()
|
||||
download.text = qsTr("Download")
|
||||
busy = false
|
||||
rootItem.hideBusy()
|
||||
divesDownloaded = false
|
||||
manager.appendTextToLog("switch to dive list has completed")
|
||||
}
|
||||
}
|
||||
Controls.Label {
|
||||
|
|
|
@ -103,7 +103,16 @@ Kirigami.ApplicationWindow {
|
|||
pageStack.push(mapPage)
|
||||
else
|
||||
pageStack.currentIndex = i
|
||||
}
|
||||
|
||||
function showDiveList() {
|
||||
if (globalDrawer.drawerOpen)
|
||||
globalDrawer.close()
|
||||
var i=pageIndex(diveList)
|
||||
if (i === -1)
|
||||
pageStack.push(diveList)
|
||||
else
|
||||
pageStack.currentIndex = i
|
||||
}
|
||||
|
||||
function pageIndex(pageToFind) {
|
||||
|
|
Loading…
Add table
Reference in a new issue