@@ -20,45 +20,93 @@ import Unity.Indicators 0.1 as Indicators
2020Indicators.FakeIndicatorsModel {
2121 id: root
2222
23− Component.onCompleted: {
24− Indicators.UnityMenuModelCache.setCachedModelData("com.canonical.indicators.fake1",
25− "/com/canonical/indicators/fake1",
26− "/com/canonical/indicators/fake1",
23+ property var originalModelData: [
24+ {
25+ "identifier": "fake-indicator-bluetooth",
26+ "indicatorProperties": {
27+ "enabled": true,
28+ "busName": "com.canonical.indicators.fake1",
29+ "menuObjectPath": "/com/canonical/indicators/fake1",
30+ "actionsObjectPath": "/com/canonical/indicators/fake1"
31+ }
32+ },
33+ {
34+ "identifier": "fake-indicator-network",
35+ "indicatorProperties": {
36+ "enabled": true,
37+ "busName": "com.canonical.indicators.fake2",
38+ "menuObjectPath": "/com/canonical/indicators/fake2",
39+ "actionsObjectPath": "/com/canonical/indicators/fake2"
40+ }
41+ },
42+ {
43+ "identifier": "fake-indicator-messages",
44+ "indicatorProperties": {
45+ "enabled": true,
46+ "busName": "com.canonical.indicators.fake3",
47+ "menuObjectPath": "/com/canonical/indicators/fake3",
48+ "actionsObjectPath": "/com/canonical/indicators/fake3"
49+ }
50+ },
51+ {
52+ "identifier": "fake-indicator-sound",
53+ "indicatorProperties": {
54+ "enabled": true,
55+ "busName": "com.canonical.indicators.fake4",
56+ "menuObjectPath": "/com/canonical/indicators/fake4",
57+ "actionsObjectPath": "/com/canonical/indicators/fake4"
58+ }
59+ },
60+ {
61+ "identifier": "fake-indicator-power",
62+ "indicatorProperties": {
63+ "enabled": true,
64+ "busName": "com.canonical.indicators.fake5",
65+ "menuObjectPath": "/com/canonical/indicators/fake5",
66+ "actionsObjectPath": "/com/canonical/indicators/fake5"
67+ }
68+ },
69+ {
70+ "identifier": "fake-indicator-datetime",
71+ "indicatorProperties": {
72+ "enabled": true,
73+ "busName": "com.canonical.indicators.fake6",
74+ "menuObjectPath": "/com/canonical/indicators/fake6",
75+ "actionsObjectPath": "/com/canonical/indicators/fake6"
76+ }
77+ }
78+ ]
79+
80+ function load(profile) {
81+ unload();
82+ root.modelData = originalModelData;
83+
84+ Indicators.UnityMenuModelCache.setCachedModelData("/com/canonical/indicators/fake1",
2785 getUnityMenuModelData("fake-indicator-bluetooth",
2886 "Bluetooth (F)",
2987 "",
3088 [ "image://theme/bluetooth-active" ]));
31− Indicators.UnityMenuModelCache.setCachedModelData("com.canonical.indicators.fake2",
32− "/com/canonical/indicators/fake2",
33− "/com/canonical/indicators/fake2",
89+ Indicators.UnityMenuModelCache.setCachedModelData("/com/canonical/indicators/fake2",
3490 getUnityMenuModelData("fake-indicator-network",
3591 "Network (F)",
3692 "",
3793 [ "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",
94+ Indicators.UnityMenuModelCache.setCachedModelData("/com/canonical/indicators/fake3",
4195 getUnityMenuModelData("fake-indicator-messages",
4296 "Messages (F)",
4397 "",
4498 [ "image://theme/messages-new" ]));
45− Indicators.UnityMenuModelCache.setCachedModelData("com.canonical.indicators.fake4",
46− "/com/canonical/indicators/fake4",
47− "/com/canonical/indicators/fake4",
99+ Indicators.UnityMenuModelCache.setCachedModelData("/com/canonical/indicators/fake4",
48100 getUnityMenuModelData("fake-indicator-sound",
49101 "Sound (F)",
50102 "",
51103 [ "image://theme/audio-volume-high" ]));
52− Indicators.UnityMenuModelCache.setCachedModelData("com.canonical.indicators.fake5",
53− "/com/canonical/indicators/fake5",
54− "/com/canonical/indicators/fake5",
104+ Indicators.UnityMenuModelCache.setCachedModelData("/com/canonical/indicators/fake5",
55105 getUnityMenuModelData("fake-indicator-power",
56106 "Battery (F)",
57107 "",
58108 [ "image://theme/battery-020" ]));
59− Indicators.UnityMenuModelCache.setCachedModelData("com.canonical.indicators.fake6",
60− "/com/canonical/indicators/fake6",
61− "/com/canonical/indicators/fake6",
109+ Indicators.UnityMenuModelCache.setCachedModelData("/com/canonical/indicators/fake6",
62110 getUnityMenuModelData("fake-indicator-datetime",
63111 "Upcoming Events (F)",
64112 "12:04",
@@ -78,11 +126,12 @@ Indicators.FakeIndicatorsModel {
78126 "actionState": {
79127 "title": title,
80128 "label": label,
81− "icons": icons
129+ "icons": icons,
130+ "visible": true
82131 },
83132 "isCheck": false,
84133 "isRadio": false,
85− "isToggled": false,
134+ "isToggled": false
86135 },
87136 "submenu": []
88137 }];
@@ -101,7 +150,7 @@ Indicators.FakeIndicatorsModel {
101150 "actionState": {},
102151 "isCheck": false,
103152 "isRadio": false,
104− "isToggled": false,
153+ "isToggled": false
105154 }};
106155 submenus.push(submenu);
107156 }
@@ -110,65 +159,20 @@ Indicators.FakeIndicatorsModel {
110159 return root;
111160 }
112161
113− property var originalModelData: [
114− {
115− "identifier": "fake-indicator-bluetooth",
116− "indicatorProperties": {
117− "enabled": true,
118− "busName": "com.canonical.indicators.fake1",
119− "menuObjectPath": "/com/canonical/indicators/fake1",
120− "actionsObjectPath": "/com/canonical/indicators/fake1"
121− }
122− },
123− {
124− "identifier": "fake-indicator-network",
125− "indicatorProperties": {
126− "enabled": true,
127− "busName": "com.canonical.indicators.fake2",
128− "menuObjectPath": "/com/canonical/indicators/fake2",
129− "actionsObjectPath": "/com/canonical/indicators/fake2"
130− }
131− },
132− {
133− "identifier": "fake-indicator-messages",
134− "indicatorProperties": {
135− "enabled": true,
136− "busName": "com.canonical.indicators.fake3",
137− "menuObjectPath": "/com/canonical/indicators/fake3",
138− "actionsObjectPath": "/com/canonical/indicators/fake3"
139− }
140− },
141− {
142− "identifier": "fake-indicator-sound",
143− "indicatorProperties": {
144− "enabled": true,
145− "busName": "com.canonical.indicators.fake4",
146− "menuObjectPath": "/com/canonical/indicators/fake4",
147− "actionsObjectPath": "/com/canonical/indicators/fake4"
148− }
149− },
150− {
151− "identifier": "fake-indicator-power",
152− "indicatorProperties": {
153− "enabled": true,
154− "busName": "com.canonical.indicators.fake5",
155− "menuObjectPath": "/com/canonical/indicators/fake5",
156− "actionsObjectPath": "/com/canonical/indicators/fake5"
157− }
158− },
159− {
160− "identifier": "fake-indicator-datetime",
161− "indicatorProperties": {
162− "enabled": true,
163− "busName": "com.canonical.indicators.fake6",
164− "menuObjectPath": "/com/canonical/indicators/fake6",
165− "actionsObjectPath": "/com/canonical/indicators/fake6"
162+ function setIndicatorVisible(identifier, visible) {
163+ for (var i = 0; i < originalModelData.length; i++) {
164+ if (originalModelData[i]["identifier"] === identifier) {
165+ var data = Indicators.UnityMenuModelCache.getCachedModelData(
166+ originalModelData[i]["indicatorProperties"]["menuObjectPath"]);
167+
168+ data[0]["rowData"]["actionState"]["visible"] = visible;
169+
170+ Indicators.UnityMenuModelCache.setCachedModelData(
171+ originalModelData[i]["indicatorProperties"]["menuObjectPath"],
172+ data);
173+ break;
166174 }
167175 }
168− ]
169176
170− function load(profile) {
171− unload();
172− root.modelData = originalModelData;
173177 }
174178}