@@ -20,6 +20,7 @@
2020import QtQuick 2.0
2121import Unity.Indicators 0.1 as Indicators
2222import Unity.Indicators.Network 0.1 as ICNetwork
23+import Unity.Indicators.Messaging 0.1 as ICMessaging
2324import QMenuModel 0.1 as QMenuModel
2425
2526Item {
@@ -38,6 +39,9 @@ Item {
3839 "com.canonical.indicator.slider" : sliderMenu,
3940 "com.canonical.indicator.switch" : switchMenu,
4041
42+ "com.canonical.indicator.messages.messageitem" : messageItem,
43+ "com.canonical.indicator.messages.sourceitem" : groupedMessage,
44+
4145 "com.canonical.unity.slider" : sliderMenu,
4246 "com.canonical.unity.switch" : switchMenu,
4347
@@ -45,15 +49,17 @@ Item {
4549 "unity.widgets.systemsettings.tablet.accesspoint" : accessPoint,
4650 }
4751
52+ Component { id: divMenu; Indicators.DivMenuItem {} }
53+
4854 Component {
4955 id: sliderMenu;
5056 Indicators.SliderMenuItem {
5157 property QtObject menu: null
5258
5359 text: menu && menu.label ? menu.label : ""
54− icon: menu ? menu.icon : ""
55− minIcon: menu.ext.minIcon
56− maxIcon: menu.ext.maxIcon
60+ icon: menu && menu.icon ? menu.icon : ""
61+ minIcon: menu && menu.ext.minIcon ? menu.ext.minIcon : ""
62+ maxIcon: menu && menu.ext.maxIcon ? menu.ext.maxIcon : ""
5763
5864 minimumValue: menu.ext.minValue ? menu.ext.minValue : 0.0
5965 maximumValue: {
@@ -94,8 +100,6 @@ Item {
94100 }
95101 }
96102
97− Component { id: divMenu; Indicators.DivMenuItem {} }
98−
99103 Component {
100104 id: buttonMenu;
101105 Indicators.ButtonMenuItem {
@@ -104,7 +108,9 @@ Item {
104108 text: menu && menu.label ? menu.label : ""
105109 enabled: menu ? menu.sensitive : false
106110
107− onActivate: model.activate(modelIndex);
111+ onActivate: {
112+ model.activate(modelIndex);
113+ }
108114 }
109115 }
110116 Component {
@@ -133,12 +139,14 @@ Item {
133139 property QtObject menu: null
134140
135141 text: menu && menu.label ? menu.label : ""
136− icon: menu ? menu.icon : ""
142+ icon: menu && menu.icon ? menu.icon : ""
137143 checkable: menu ? (menu.isCheck || menu.isRadio) : false
138144 checked: checkable ? menu.isToggled : false
139145 enabled: menu ? menu.sensitive : false
140146
141− onActivate: model.activate(modelIndex);
147+ onActivate: {
148+ model.activate(modelIndex);
149+ }
142150 }
143151 }
144152
@@ -148,11 +156,13 @@ Item {
148156 property QtObject menu: null
149157
150158 text: menu && menu.label ? menu.label : ""
151− icon: menu ? menu.icon : ""
159+ icon: menu && menu.icon ? menu.icon : ""
152160 checked: menu ? menu.isToggled : false
153161 enabled: menu ? menu.sensitive : false
154162
155− onActivate: model.activate(modelIndex);
163+ onActivate: {
164+ model.activate(modelIndex);
165+ }
156166 }
157167 }
158168
@@ -174,17 +184,16 @@ Item {
174184 id: accessPoint;
175185 ICNetwork.AccessPoint {
176186 property QtObject menu: null
177−// property var strenthAction: QMenuModel.UnityMenuAction {
178−// model: menuFactory.model ? menuFactory.model : null
179−// name: menu ? menu.ext.xCanonicalWifiApStrengthAction : ""
180−// }
187+ property var strenthAction: QMenuModel.UnityMenuAction {
188+ model: menuFactory.model ? menuFactory.model : null
189+ name: menu ? menu.ext.xCanonicalWifiApStrengthAction : ""
190+ }
181191
182192 text: menu && menu.label ? menu.label : ""
183− icon: menu ? menu.icon : ""
184193 secure: menu ? menu.ext.xCanonicalWifiApIsSecure : false
185194 adHoc: menu ? menu.ext.xCanonicalWifiApIsAdhoc : false
186195 checked: menu ? menu.isToggled : false
187−// signalStrength: strenthAction.valid ? strenthAction.state : 0
196+ signalStrength: strenthAction.valid ? strenthAction.state : 0
188197 enabled: menu ? menu.sensitive : false
189198
190199 Component.onCompleted: {
@@ -192,7 +201,48 @@ Item {
192201 'x-canonical-wifi-ap-is-secure': 'bool',
193202 'x-canonical-wifi-ap-strength-action': 'string'});
194203 }
195− onActivate: model.activate(modelIndex);
204+ onActivate: {
205+ model.activate(modelIndex);
206+ }
207+ }
208+ }
209+
210+ Component {
211+ id: messageItem
212+ ICMessaging.MessageMenuItemFactory {
213+
214+ property QtObject menu: null
215+ model: menuFactory.model ? menuFactory.model : null
216+
217+ Component.onCompleted: {
218+ model.loadExtendedAttributes(modelIndex, {'x-canonical-time': 'int64',
219+ 'x-canonical-text': 'string',
220+ 'x-canonical-message-actions': 'variant',
221+ 'x-canonical-icon': 'string',
222+ 'x-canonical-app-icon': 'string'});
223+ }
224+ }
225+ }
226+
227+ Component {
228+ id: groupedMessage
229+ ICMessaging.GroupedMessage {
230+ property QtObject menu: null
231+
232+ title: menu && menu.label ? menu.label : ""
233+ count: menu && menu.actionState[0] ? menu.actionState[0] : "0"
234+ appIcon: menu && (menu.ext.xCanonicalIcon.length > 0) ? "image://gicon/" + encodeURI(menu.ext.xCanonicalIcon) :
235+ "qrc:/indicators/artwork/messaging/default_app.svg"
236+
237+ Component.onCompleted: {
238+ model.loadExtendedAttributes(modelIndex, {'x-canonical-icon': 'string'});
239+ }
240+ onActivateApp: {
241+ model.activate(modelIndex, true);
242+ }
243+ onDismiss: {
244+ model.activate(modelIndex, false);
245+ }
196246 }
197247 }
198248