17 import AccountsService 0.1
18 import LightDM 0.1 as LightDM
26 property Item launcher
27 property Item indicators
28 property Item underlay
30 property bool launcherEnabled:
true
31 property bool dashEnabled:
true
32 property bool panelEnabled:
true
33 property bool panelContentEnabled:
true
34 property bool running: !launcherEnabled || !dashEnabled || !panelEnabled || !panelContentEnabled
36 property bool paused:
false
39 if (d.rightEdgeDemo) d.rightEdgeDemo.paused = paused
40 if (d.topEdgeDemo) d.topEdgeDemo.paused = paused
41 if (d.bottomEdgeDemo) d.bottomEdgeDemo.paused = paused
42 if (d.leftEdgeDemo) d.leftEdgeDemo.paused = paused
43 if (d.finalEdgeDemo) d.finalEdgeDemo.paused = paused
46 function hideEdgeDemoInShell() {
47 AccountsService.demoEdges =
false;
51 function hideEdgeDemoInGreeter() {
55 function hideEdgeDemos() {
56 hideEdgeDemoInGreeter();
57 hideEdgeDemoInShell();
61 launcherEnabled =
true
64 panelContentEnabled =
true
65 if (d.rightEdgeDemo) d.rightEdgeDemo.destroy()
66 if (d.topEdgeDemo) d.topEdgeDemo.destroy()
67 if (d.bottomEdgeDemo) d.bottomEdgeDemo.destroy()
68 if (d.leftEdgeDemo) d.leftEdgeDemo.destroy()
69 if (d.finalEdgeDemo) d.finalEdgeDemo.destroy()
72 function startDemo() {
74 d.overlay = Qt.createComponent(
"EdgeDemoOverlay.qml")
77 launcherEnabled =
false;
80 panelContentEnabled =
false;
83 if (greeter && greeter.shown) {
92 property Component overlay
93 property QtObject rightEdgeDemo
94 property QtObject topEdgeDemo
95 property QtObject bottomEdgeDemo
96 property QtObject leftEdgeDemo
97 property QtObject finalEdgeDemo
98 property bool showEdgeDemo: AccountsService.demoEdges
99 property bool showEdgeDemoInGreeter: AccountsService.demoEdges
101 onShowEdgeDemoChanged: {
103 if (d.showEdgeDemo) {
109 function startRightEdgeDemo() {
111 d.rightEdgeDemo = d.overlay.createObject(demo.greeter, {
113 "title": i18n.tr(
"Right edge"),
114 "text": i18n.tr(
"Try swiping from the right edge to unlock the phone"),
115 "anchors.fill": demo.greeter,
118 if (d.rightEdgeDemo) {
119 d.rightEdgeDemo.onSkip.connect(demo.hideEdgeDemos)
129 if (d.rightEdgeDemo && d.rightEdgeDemo.available) {
130 d.rightEdgeDemo.hide()
131 hideEdgeDemoInGreeter()
137 onShownChanged: if (!greeter.shown) hide()
140 function startTopEdgeDemo() {
141 demo.panelEnabled =
true;
142 if (demo.dash && demo.underlay) {
143 d.topEdgeDemo = d.overlay.createObject(demo.underlay, {
145 "title": i18n.tr(
"Top edge"),
146 "text": i18n.tr(
"Try swiping from the top edge to access the indicators"),
147 "anchors.fill": demo.dash,
151 d.topEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
158 target: demo.indicators
159 onFullyOpenedChanged: {
160 if (d.topEdgeDemo && d.topEdgeDemo.available && demo.indicators.fullyOpened) {
161 d.topEdgeDemo.hideNow()
162 startBottomEdgeDemo()
167 function startBottomEdgeDemo() {
168 if (demo.indicators) {
169 d.bottomEdgeDemo = d.overlay.createObject(demo.indicators, {
171 "title": i18n.tr(
"Close"),
172 "text": i18n.tr(
"Swipe up again to close the settings screen"),
173 "anchors.fill": demo.indicators.content,
176 if (d.bottomEdgeDemo) {
177 d.bottomEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
184 target: demo.indicators
185 onPartiallyOpenedChanged: {
186 if (d.bottomEdgeDemo && d.bottomEdgeDemo.available && !demo.indicators.partiallyOpened && !demo.indicators.fullyOpened) {
187 d.bottomEdgeDemo.hideNow()
193 function startLeftEdgeDemo() {
194 demo.panelEnabled =
false;
195 demo.launcherEnabled =
true;
196 if (demo.dash && demo.underlay) {
197 d.leftEdgeDemo = d.overlay.createObject(demo.underlay, {
199 "title": i18n.tr(
"Left edge"),
200 "text": i18n.tr(
"Swipe from the left to reveal the launcher for quick access to apps"),
201 "anchors.fill": demo.dash,
204 if (d.leftEdgeDemo) {
205 d.leftEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
212 target: demo.launcher
214 if (d.leftEdgeDemo && d.leftEdgeDemo.available && launcher.state ==
"visible") {
215 d.leftEdgeDemo.hide()
222 function startFinalEdgeDemo() {
223 demo.launcherEnabled =
false;
224 if (demo.dash && demo.underlay) {
225 d.finalEdgeDemo = d.overlay.createObject(demo.underlay, {
227 "title": i18n.tr(
"Well done"),
228 "text": i18n.tr(
"You have now mastered the edge gestures and can start using the phone<br><br>Tap on the screen to start"),
229 "anchors.fill": demo.dash,
233 if (d.finalEdgeDemo) {
234 d.finalEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)