on xenial help sign in
Move display power checking out of the EdgeDemoOverlay class into the shell
commitfe2b2691835a457d23e857bce501acbf89a04453 authorMichael Terry <michael.terry@canonical.com> dateThu 22 Aug 2013, 17:05 (13 years ago) parent5997e63
3 files changed+41−25
Components/EdgeDemo.qml+29−10 Components/EdgeDemoOverlay.qml+5−15 Shell.qml+7
Components/EdgeDemo.qml+29−10
@@ -31,19 +31,26 @@ Item {
3131 property bool dashEnabled: true
3232 property bool panelEnabled: true
3333
34− property bool showEdgeDemo: false
35− property bool showEdgeDemoInGreeter: showEdgeDemo // TODO: AccountsService.getUserProperty("lightdm", "demo-edges")
34+ property bool paused: false
35+
36+ onPausedChanged: {
37+ if (d.rightEdgeDemo) d.rightEdgeDemo.paused = paused
38+ if (d.topEdgeDemo) d.topEdgeDemo.paused = paused
39+ if (d.bottomEdgeDemo) d.bottomEdgeDemo.paused = paused
40+ if (d.leftEdgeDemo) d.leftEdgeDemo.paused = paused
41+ if (d.finalEdgeDemo) d.finalEdgeDemo.paused = paused
42+ }
3643
3744 function hideEdgeDemoInShell() {
3845 var user = LightDM.Users.data(greeter.currentIndex, LightDM.UserRoles.NameRole);
3946 AccountsService.setUserProperty(user, "demo-edges", false);
40− demo.showEdgeDemo = false;
47+ d.showEdgeDemo = false;
4148 stopDemo();
4249 }
4350
4451 function hideEdgeDemoInGreeter() {
4552 // TODO: AccountsService.setUserProperty("lightdm", "demo-edges", false);
46− demo.showEdgeDemoInGreeter = false;
53+ d.showEdgeDemoInGreeter = false;
4754 }
4855
4956 function hideEdgeDemos() {
@@ -70,12 +77,14 @@ Item {
7077 property QtObject bottomEdgeDemo
7178 property QtObject leftEdgeDemo
7279 property QtObject finalEdgeDemo
73− }
80+ property bool showEdgeDemo: false
81+ property bool showEdgeDemoInGreeter: d.showEdgeDemo // TODO: AccountsService.getUserProperty("lightdm", "demo-edges")
7482
75− onShowEdgeDemoInGreeterChanged: {
76− if (!d.overlay && showEdgeDemoInGreeter) {
77− d.overlay = Qt.createComponent("EdgeDemoOverlay.qml")
78− startRightEdgeDemo()
83+ onShowEdgeDemoInGreeterChanged: {
84+ if (!d.overlay && d.showEdgeDemoInGreeter) {
85+ d.overlay = Qt.createComponent("EdgeDemoOverlay.qml")
86+ startRightEdgeDemo()
87+ }
7988 }
8089 }
8190
@@ -90,6 +99,8 @@ Item {
9099 "text": i18n.tr("Try swiping from the right edge to unlock the phone"),
91100 "anchors.fill": demo.greeter,
92101 });
102+ }
103+ if (d.rightEdgeDemo) {
93104 d.rightEdgeDemo.onSkip.connect(demo.hideEdgeDemos)
94105 } else {
95106 stopDemo();
@@ -112,7 +123,7 @@ Item {
112123
113124 onSelected: {
114125 var user = LightDM.Users.data(uid, LightDM.UserRoles.NameRole)
115− showEdgeDemo = AccountsService.getUserProperty(user, "demo-edges")
126+ d.showEdgeDemo = true;//AccountsService.getUserProperty(user, "demo-edges")
116127 }
117128 }
118129
@@ -125,6 +136,8 @@ Item {
125136 "text": i18n.tr("Try swiping from the top edge to access the indicators"),
126137 "anchors.fill": demo.dash,
127138 });
139+ }
140+ if (d.topEdgeDemo) {
128141 d.topEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
129142 } else {
130143 stopDemo();
@@ -149,6 +162,8 @@ Item {
149162 "text": i18n.tr("Swipe up again to close the settings screen"),
150163 "anchors.fill": demo.indicators,
151164 });
165+ }
166+ if (d.bottomEdgeDemo) {
152167 d.bottomEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
153168 } else {
154169 stopDemo();
@@ -175,6 +190,8 @@ Item {
175190 "text": i18n.tr("Swipe from the left to reveal the launcher for quick access to apps"),
176191 "anchors.fill": demo.dash,
177192 });
193+ }
194+ if (d.leftEdgeDemo) {
178195 d.leftEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
179196 } else {
180197 stopDemo();
@@ -201,6 +218,8 @@ Item {
201218 "text": i18n.tr("You have now mastered the edge gestures and can start using the phone"),
202219 "anchors.fill": demo.overlay,
203220 });
221+ }
222+ if (d.finalEdgeDemo) {
204223 d.finalEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
205224 } else {
206225 stopDemo();
Components/EdgeDemoOverlay.qml+5−15
@@ -48,6 +48,11 @@ Showable {
4848 */
4949 readonly property bool active: available && visible
5050
51+ /*
52+ * Whether animations are paused.
53+ */
54+ property alias paused: wholeAnimation.paused
55+
5156 signal skip()
5257
5358 function doSkip() {
@@ -243,19 +248,4 @@ Showable {
243248 }
244249 }
245250 }
246−
247− // Watch display, so we can turn off animation if it does. No reason to
248− // chew CPU when user isn't watching.
249− Connections {
250− id: powerConnection
251− target: Powerd
252−
253− onDisplayPowerStateChange: {
254− if (status == Powerd.Off && wholeAnimation.running) {
255− wholeAnimation.pause();
256− } else if (status == Powerd.On) {
257− wholeAnimation.resume();
258− }
259− }
260− }
261251}
Shell.qml+7
@@ -508,6 +508,13 @@ FocusScope {
508508 } else if (status == Powerd.On) {
509509 powerConnection.setFocused(true);
510510 }
511+
512+ // No reason to chew demo CPU when user isn't watching
513+ if (status == Powerd.Off) {
514+ edgeDemo.paused = true;
515+ } else if (status == Powerd.On) {
516+ edgeDemo.paused = false;
517+ }
511518 }
512519 }
513520