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
+7 -14
View File
@@ -24,11 +24,6 @@ GridView {
cellWidth: 350; cellHeight: 350;
objectName: "Computers"
// 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
StreamingPreferences {
id: prefs
}
@@ -37,16 +32,9 @@ GridView {
id: gamepadKeyNav
}
onVisibleChanged: {
if (visible) {
gamepadKeyNav.enable()
}
else {
gamepadKeyNav.disable()
}
}
StackView.onActivated: {
gamepadKeyNav.enable()
Component.onCompleted: {
// Setup signals on CM
ComputerManager.computerAddCompleted.connect(addComplete)
@@ -54,6 +42,11 @@ GridView {
currentIndex = -1
}
StackView.onDeactivating: {
gamepadKeyNav.disable()
ComputerManager.computerAddCompleted.disconnect(addComplete)
}
function pairingComplete(error)
{
// Close the PIN dialog