@@ -18,43 +18,151 @@ import QtQuick 2.0
1818import Unity.Indicators 0.1 as Indicators
1919
2020Indicators.FakeIndicatorsModel {
21+ id: root
22+
23+ Component.onCompleted: {
24+ Indicators.UnityMenuModelCache.setCachedModelData("com.canonical.indicators.fake1",
25+ "/com/canonical/indicators/fake1",
26+ "/com/canonical/indicators/fake1",
27+ getUnityMenuModelData("fake-indicator-bluetooth",
28+ "Bluetooth (F)",
29+ "",
30+ [ "image://theme/bluetooth-active" ]));
31+ Indicators.UnityMenuModelCache.setCachedModelData("com.canonical.indicators.fake2",
32+ "/com/canonical/indicators/fake2",
33+ "/com/canonical/indicators/fake2",
34+ getUnityMenuModelData("fake-indicator-network",
35+ "Network (F)",
36+ "",
37+ [ "image://theme/simcard-error", "image://theme/wifi-high" ]));
38+ Indicators.UnityMenuModelCache.setCachedModelData("com.canonical.indicators.fake3",
39+ "/com/canonical/indicators/fake3",
40+ "/com/canonical/indicators/fake3",
41+ getUnityMenuModelData("fake-indicator-sound",
42+ "Messages (F)",
43+ "",
44+ [ "image://theme/messages-new" ]));
45+ Indicators.UnityMenuModelCache.setCachedModelData("com.canonical.indicators.fake4",
46+ "/com/canonical/indicators/fake4",
47+ "/com/canonical/indicators/fake4",
48+ getUnityMenuModelData("fake-indicator-power",
49+ "Sound (F)",
50+ "",
51+ [ "image://theme/audio-volume-high" ]));
52+ Indicators.UnityMenuModelCache.setCachedModelData("com.canonical.indicators.fake5",
53+ "/com/canonical/indicators/fake5",
54+ "/com/canonical/indicators/fake5",
55+ getUnityMenuModelData("fake-indicator-power",
56+ "Battery (F)",
57+ "",
58+ [ "image://theme/battery-020" ]));
59+ }
60+
61+ function getUnityMenuModelData(identifier, title, label, icons) {
62+ var root = [{
63+ "rowData": { // 1
64+ "label": "",
65+ "sensitive": true,
66+ "isSeparator": false,
67+ "icon": "",
68+ "type": "com.canonical.indicator.root",
69+ "ext": {},
70+ "action": "",
71+ "actionState": {
72+ "title": title,
73+ "label": label,
74+ "icons": icons
75+ },
76+ "isCheck": false,
77+ "isRadio": false,
78+ "isToggled": false,
79+ },
80+ "submenu": []
81+ }];
82+
83+ var submenus = [];
84+ for (var i = 0; i < 8; i++) {
85+ var submenu = {
86+ "rowData": { // 1.1
87+ "label": identifier,
88+ "sensitive": true,
89+ "isSeparator": false,
90+ "icon": "",
91+ "type": undefined,
92+ "ext": {},
93+ "action": "",
94+ "actionState": {},
95+ "isCheck": false,
96+ "isRadio": false,
97+ "isToggled": false,
98+ }};
99+ submenus.push(submenu);
100+ }
101+ root[0]["submenu"] = submenus;
102+
103+ return root;
104+ }
105+
106+ property var originalModelData: [
107+ {
108+ "identifier": "fake-indicator-1",
109+ "widgetSource": "Indicators/DefaultIndicatorWidget.qml",
110+ "pageSource": "Indicators/DefaultIndicatorPage.qml",
111+ "indicatorProperties": {
112+ "enabled": true,
113+ "busName": "com.canonical.indicators.fake1",
114+ "menuObjectPath": "/com/canonical/indicators/fake1",
115+ "actionsObjectPath": "/com/canonical/indicators/fake1"
116+ }
117+ },
118+ {
119+ "identifier": "fake-indicator-2",
120+ "widgetSource": "Indicators/DefaultIndicatorWidget.qml",
121+ "pageSource": "Indicators/DefaultIndicatorPage.qml",
122+ "indicatorProperties": {
123+ "enabled": true,
124+ "busName": "com.canonical.indicators.fake2",
125+ "menuObjectPath": "/com/canonical/indicators/fake2",
126+ "actionsObjectPath": "/com/canonical/indicators/fake2"
127+ }
128+ },
129+ {
130+ "identifier": "fake-indicator-3",
131+ "widgetSource": "Indicators/DefaultIndicatorWidget.qml",
132+ "pageSource": "Indicators/DefaultIndicatorPage.qml",
133+ "indicatorProperties": {
134+ "enabled": true,
135+ "busName": "com.canonical.indicators.fake3",
136+ "menuObjectPath": "/com/canonical/indicators/fake3",
137+ "actionsObjectPath": "/com/canonical/indicators/fake3"
138+ }
139+ },
140+ {
141+ "identifier": "fake-indicator-4",
142+ "widgetSource": "Indicators/DefaultIndicatorWidget.qml",
143+ "pageSource": "Indicators/DefaultIndicatorPage.qml",
144+ "indicatorProperties": {
145+ "enabled": true,
146+ "busName": "com.canonical.indicators.fake4",
147+ "menuObjectPath": "/com/canonical/indicators/fake4",
148+ "actionsObjectPath": "/com/canonical/indicators/fake4"
149+ }
150+ },
151+ {
152+ "identifier": "fake-indicator-5",
153+ "widgetSource": "Indicators/DefaultIndicatorWidget.qml",
154+ "pageSource": "Indicators/DefaultIndicatorPage.qml",
155+ "indicatorProperties": {
156+ "enabled": true,
157+ "busName": "com.canonical.indicators.fake5",
158+ "menuObjectPath": "/com/canonical/indicators/fake5",
159+ "actionsObjectPath": "/com/canonical/indicators/fake5"
160+ }
161+ }
162+ ]
21163
22164 function load(profile) {
23165 unload();
24−
25− append({ "identifier": "indicator-fake1",
26− "position": 0,
27− "widgetSource": "qrc:/tests/indciators/qml/fake_menu_widget1.qml",
28− "pageSource": "qrc:/tests/indciators/qml/fake_menu_page1.qml",
29− "indicatorProperties": { enabled: true }
30− });
31−
32− append({ "identifier": "indicator-fake2",
33− "position": 1,
34− "widgetSource": "qrc:/tests/indciators/qml/fake_menu_widget2.qml",
35− "pageSource": "qrc:/tests/indciators/qml/fake_menu_page2.qml",
36− "indicatorProperties": { enabled: true }
37− });
38−
39− append({ "identifier": "indicator-fake3",
40− "position": 2,
41− "widgetSource": "qrc:/tests/indciators/qml/fake_menu_widget3.qml",
42− "pageSource": "qrc:/tests/indciators/qml/fake_menu_page3.qml",
43− "indicatorProperties": { enabled: true }
44− });
45−
46− append({ "identifier": "indicator-fake4",
47− "position": 3,
48− "widgetSource": "qrc:/tests/indciators/qml/fake_menu_widget4.qml",
49− "pageSource": "qrc:/tests/indciators/qml/fake_menu_page4.qml",
50− "indicatorProperties": { enabled: true }
51− });
52−
53− append({ "identifier": "indicator-fake5",
54− "position": 4,
55− "widgetSource": "qrc:/tests/indciators/qml/fake_menu_widget5.qml",
56− "pageSource": "qrc:/tests/indciators/qml/fake_menu_page5.qml",
57− "indicatorProperties": { enabled: true }
58− });
166+ root.modelData = originalModelData;
59167 }
60168}