@@ -20,6 +20,7 @@
20import QtQuick 2.0
20import QtQuick 2.0
21import Unity.Indicators 0.1 as Indicators
21import Unity.Indicators 0.1 as Indicators
22import Unity.Indicators.Network 0.1 as ICNetwork
22import Unity.Indicators.Network 0.1 as ICNetwork
23+import Unity.Indicators.Messaging 0.1 as ICMessaging
23import QMenuModel 0.1 as QMenuModel
24import QMenuModel 0.1 as QMenuModel
@@ -38,6 +39,9 @@ Item {
38 "com.canonical.indicator.slider" : sliderMenu,
39 "com.canonical.indicator.slider" : sliderMenu,
39 "com.canonical.indicator.switch" : switchMenu,
40 "com.canonical.indicator.switch" : switchMenu,
42+ "com.canonical.indicator.messages.messageitem" : messageItem,
43+ "com.canonical.indicator.messages.sourceitem" : groupedMessage,
41 "com.canonical.unity.slider" : sliderMenu,
45 "com.canonical.unity.slider" : sliderMenu,
42 "com.canonical.unity.switch" : switchMenu,
46 "com.canonical.unity.switch" : switchMenu,
@@ -45,15 +49,17 @@ Item {
45 "unity.widgets.systemsettings.tablet.accesspoint" : accessPoint,
49 "unity.widgets.systemsettings.tablet.accesspoint" : accessPoint,
52+ Component { id: divMenu; Indicators.DivMenuItem {} }
48 Component {
54 Component {
49 id: sliderMenu;
55 id: sliderMenu;
50 Indicators.SliderMenuItem {
56 Indicators.SliderMenuItem {
51 property QtObject menu: null
57 property QtObject menu: null
53 text: menu && menu.label ? menu.label : ""
59 text: menu && menu.label ? menu.label : ""
54− icon: menu ? menu.icon : ""
60+ icon: menu && menu.icon ? menu.icon : ""
55− minIcon: menu.ext.minIcon
61+ minIcon: menu && menu.ext.minIcon ? menu.ext.minIcon : ""
56− maxIcon: menu.ext.maxIcon
62+ maxIcon: menu && menu.ext.maxIcon ? menu.ext.maxIcon : ""
58 minimumValue: menu.ext.minValue ? menu.ext.minValue : 0.0
64 minimumValue: menu.ext.minValue ? menu.ext.minValue : 0.0
59 maximumValue: {
65 maximumValue: {
@@ -94,8 +100,6 @@ Item {
97− Component { id: divMenu; Indicators.DivMenuItem {} }
99 Component {
103 Component {
100 id: buttonMenu;
104 id: buttonMenu;
101 Indicators.ButtonMenuItem {
105 Indicators.ButtonMenuItem {
@@ -104,7 +108,9 @@ Item {
104 text: menu && menu.label ? menu.label : ""
108 text: menu && menu.label ? menu.label : ""
105 enabled: menu ? menu.sensitive : false
109 enabled: menu ? menu.sensitive : false
107− onActivate: model.activate(modelIndex);
112+ model.activate(modelIndex);
110 Component {
116 Component {
@@ -133,12 +139,14 @@ Item {
133 property QtObject menu: null
139 property QtObject menu: null
135 text: menu && menu.label ? menu.label : ""
141 text: menu && menu.label ? menu.label : ""
136− icon: menu ? menu.icon : ""
142+ icon: menu && menu.icon ? menu.icon : ""
137 checkable: menu ? (menu.isCheck || menu.isRadio) : false
143 checkable: menu ? (menu.isCheck || menu.isRadio) : false
138 checked: checkable ? menu.isToggled : false
144 checked: checkable ? menu.isToggled : false
139 enabled: menu ? menu.sensitive : false
145 enabled: menu ? menu.sensitive : false
141− onActivate: model.activate(modelIndex);
148+ model.activate(modelIndex);
@@ -148,11 +156,13 @@ Item {
148 property QtObject menu: null
156 property QtObject menu: null
150 text: menu && menu.label ? menu.label : ""
158 text: menu && menu.label ? menu.label : ""
151− icon: menu ? menu.icon : ""
159+ icon: menu && menu.icon ? menu.icon : ""
152 checked: menu ? menu.isToggled : false
160 checked: menu ? menu.isToggled : false
153 enabled: menu ? menu.sensitive : false
161 enabled: menu ? menu.sensitive : false
155− onActivate: model.activate(modelIndex);
164+ model.activate(modelIndex);
@@ -174,17 +184,16 @@ Item {
174 id: accessPoint;
184 id: accessPoint;
175 ICNetwork.AccessPoint {
185 ICNetwork.AccessPoint {
176 property QtObject menu: null
186 property QtObject menu: null
177−// property var strenthAction: QMenuModel.UnityMenuAction {
187+ property var strenthAction: QMenuModel.UnityMenuAction {
178−// model: menuFactory.model ? menuFactory.model : null
188+ model: menuFactory.model ? menuFactory.model : null
179−// name: menu ? menu.ext.xCanonicalWifiApStrengthAction : ""
189+ name: menu ? menu.ext.xCanonicalWifiApStrengthAction : ""
182 text: menu && menu.label ? menu.label : ""
192 text: menu && menu.label ? menu.label : ""
183− icon: menu ? menu.icon : ""
184 secure: menu ? menu.ext.xCanonicalWifiApIsSecure : false
193 secure: menu ? menu.ext.xCanonicalWifiApIsSecure : false
185 adHoc: menu ? menu.ext.xCanonicalWifiApIsAdhoc : false
194 adHoc: menu ? menu.ext.xCanonicalWifiApIsAdhoc : false
186 checked: menu ? menu.isToggled : false
195 checked: menu ? menu.isToggled : false
187−// signalStrength: strenthAction.valid ? strenthAction.state : 0
196+ signalStrength: strenthAction.valid ? strenthAction.state : 0
188 enabled: menu ? menu.sensitive : false
197 enabled: menu ? menu.sensitive : false
190 Component.onCompleted: {
199 Component.onCompleted: {
@@ -192,7 +201,48 @@ Item {
192 'x-canonical-wifi-ap-is-secure': 'bool',
201 'x-canonical-wifi-ap-is-secure': 'bool',
193 'x-canonical-wifi-ap-strength-action': 'string'});
202 'x-canonical-wifi-ap-strength-action': 'string'});
205+ model.activate(modelIndex);
212+ ICMessaging.MessageMenuItemFactory {
214+ property QtObject menu: null
215+ model: menuFactory.model ? menuFactory.model : null
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'});
229+ ICMessaging.GroupedMessage {
230+ property QtObject menu: null
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"
237+ Component.onCompleted: {
238+ model.loadExtendedAttributes(modelIndex, {'x-canonical-icon': 'string'});
241+ model.activate(modelIndex, true);
195− onActivate: model.activate(modelIndex);
244+ model.activate(modelIndex, false);