on xenial help sign in
Only allow tutorials to run serially (#284)

The only condition which each Tutorial relied on was the previous one completing. This caused issues when, for example, the short left tutorial was auto-skipped. When this occurred, both the top and long-left tutorials played at once, locking the shell. This commit makes each tutorial depend on the skipped state of all the ones that came before it, avoiding this problem.

commitb8eb7f9d904b9b44362fc8225c017f8f016e5d2c authorDalton Durst <dalton@ubports.com> dateSun 23 Feb 2020, 09:03 (7 years ago) parent1d2d928
1 file changed+21−5
qml/Tutorial/TutorialContent.qml+21−5
qml/Tutorial/TutorialContent.qml+21−5
@@ -112,7 +112,11 @@ Item {
112112 readonly property bool skipped: !d.mobileScenario || d.haveShown("left")
113113 readonly property bool shown: item && item.shown
114114 active: !skipped || (item && item.visible)
115− onSkippedChanged: if (skipped && shown) item.hide()
115+ onSkippedChanged: {
116+ console.log("SKIPPED HAS CHANGED TO " + skipped);
117+ console.trace();
118+ if (skipped && shown) item.hide()
119+ }
116120
117121 sourceComponent: TutorialLeft {
118122 id: tutorialLeft
@@ -122,7 +126,10 @@ Item {
122126 hides: [launcher, panel.indicators]
123127 paused: root.paused
124128
125− isReady: !tutorialLeftLoader.skipped && tutorialTopLoader.skipped && !paused && !delayed
129+ isReady: !tutorialLeftLoader.skipped
130+ && tutorialTopLoader.skipped
131+ && !paused
132+ && !delayed
126133
127134 InactivityTimer {
128135 id: tutorialLeftTimer
@@ -160,7 +167,11 @@ Item {
160167 paused: root.paused
161168
162169 skipped: tutorialLeftLongLoader.skipped
163− isReady: tutorialLeftLoader.skipped && !skipped && !paused && !delayed
170+ isReady: tutorialLeftLoader.skipped
171+ && tutorialTopLoader.skipped
172+ && !skipped
173+ && !paused
174+ && !delayed
164175
165176 InactivityTimer {
166177 id: tutorialLeftLongTimer
@@ -195,8 +206,13 @@ Item {
195206 paused: root.paused
196207
197208 skipped: tutorialRightLoader.skipped
198− isReady: tutorialLeftLongLoader.skipped && !skipped && !paused && !delayed &&
199− ApplicationManager.count >= 1
209+ isReady: tutorialTopLoader.skipped
210+ && tutorialLeftLoader.skipped
211+ && tutorialLeftLongLoader.skipped
212+ && !skipped
213+ && !paused
214+ && !delayed
215+ && ApplicationManager.count >= 1
200216
201217 InactivityTimer {
202218 id: tutorialRightTimer