@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013,2014 Canonical, Ltd.
2+ * Copyright (C) 2014 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -20,115 +20,60 @@ import Ubuntu.Components 1.1
2020Item {
2121 id: root
2222
23+ property alias active: loader.active
24+ property bool paused
25+
2326 property Item launcher
2427 property Item panel
2528 property Item stages
2629 property Item overlay
2730
28− readonly property bool launcherEnabled: !running ||
29− (!paused && loader.target === leftComponent)
30− readonly property bool stagesEnabled: !running
31− readonly property bool panelEnabled: !running
32− readonly property bool panelContentEnabled: !running
33− readonly property bool running: loader.sourceComponent !== null
34−
35− property bool paused: false
31+ readonly property bool launcherEnabled: loader.item ? loader.item.launcherEnabled : true
32+ readonly property bool stagesEnabled: loader.item ? loader.item.stagesEnabled : true
33+ readonly property bool panelEnabled: loader.item ? loader.item.panelEnabled : true
34+ readonly property bool panelContentEnabled: loader.item ? loader.item.panelContentEnabled : true
35+ readonly property bool running: loader.item ? loader.item.running : false
3636
3737 signal finished()
3838
39− function finish() {
40− d.stop();
41− finished();
42− }
43−
44− ////
45−
46− visible: false
47− onVisibleChanged: {
48− d.stop();
49− if (visible) {
50− d.start();
51− }
52− }
53−
54− QtObject {
55− id: d
56−
57− function stop() {
58− loader.sourceComponent = null;
59− }
60−
61− function start() {
62− loader.load(leftComponent);
63− }
64− }
65−
6639 Loader {
6740 id: loader
68− objectName: "tutorialLoader"
41+ anchors.fill: parent
42+ source: "TutorialContent.qml"
6943
70− property Component target: {
71− if (next) {
72− return next;
73− } else if (loader.item && loader.item.shown) {
74− return sourceComponent;
75− } else {
76− return null;
77− }
44+ Binding {
45+ target: loader.item
46+ property: "paused"
47+ value: root.paused
7848 }
7949
80− property Component next: null
81−
82− function load(comp) {
83− if (loader.item) {
84− next = comp;
85− loader.item.hide();
86− } else {
87− loader.sourceComponent = comp;
88− }
50+ Binding {
51+ target: loader.item
52+ property: "launcher"
53+ value: root.launcher
8954 }
9055
91− Connections {
56+ Binding {
9257 target: loader.item
93− onFinished: {
94− loader.sourceComponent = loader.next;
95− if (loader.next != null) {
96− loader.next = null;
97− } else {
98− root.finished();
99− }
100− }
58+ property: "panel"
59+ value: root.panel
10160 }
10261
10362 Binding {
10463 target: loader.item
105− property: "paused"
106− value: root.paused
64+ property: "stages"
65+ value: root.stages
10766 }
108− }
109−
110− Component {
111− id: leftComponent
112− TutorialLeft {
113− objectName: "tutorialLeft"
114− parent: root.stages
115− anchors.fill: parent
116− launcher: root.launcher
11767
118− onFinished: loader.load(leftFinishComponent)
68+ Binding {
69+ target: loader.item
70+ property: "overlay"
71+ value: root.overlay
11972 }
120− }
121−
122− Component {
123− id: leftFinishComponent
124− TutorialLeftFinish {
125− objectName: "tutorialLeftFinish"
126− parent: root.stages
127− anchors.fill: parent
128− textXOffset: root.launcher.panelWidth
129− backgroundFadesOut: true
13073
131− onFinished: root.launcher.hide()
74+ Connections {
75+ target: loader.item
76+ onFinished: root.finished()
13277 }
13378 }
13479}