Use StackView activation callbacks to perform init and cleanup since visibility callbacks aren't guaranteed to run in any order

This commit is contained in:
Cameron Gutman
2019-02-22 22:14:06 -08:00
parent 754a14941b
commit 8037fb76fc
7 changed files with 62 additions and 105 deletions
+10 -16
View File
@@ -14,11 +14,6 @@ Item {
anchors.fill: parent
// The StackView will trigger a visibility change when
// we're pushed onto it, causing our onVisibleChanged
// routine to run, but only if we start as invisible
visible: false
function quitAppCompleted(error)
{
// Display a failed dialog if we got an error
@@ -42,18 +37,17 @@ Item {
}
}
onVisibleChanged: {
if (visible) {
// Hide the toolbar before we start loading
toolBar.visible = false
StackView.onActivated: {
// Hide the toolbar before we start loading
toolBar.visible = false
// Connect the quit completion signal
ComputerManager.quitAppCompleted.connect(quitAppCompleted)
}
else {
// Disconnect the signal
ComputerManager.quitAppCompleted.disconnect(quitAppCompleted)
}
// Connect the quit completion signal
ComputerManager.quitAppCompleted.connect(quitAppCompleted)
}
StackView.onDeactivating: {
// Disconnect the signal
ComputerManager.quitAppCompleted.disconnect(quitAppCompleted)
}
Row {