@@ -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: {
@@ -79,8 +85,6 @@ Item {
82− Component { id: divMenu; Indicators.DivMenuItem {} }
84 Component {
88 Component {
85 id: buttonMenu;
89 id: buttonMenu;
86 Indicators.ButtonMenuItem {
90 Indicators.ButtonMenuItem {
@@ -89,7 +93,9 @@ Item {
89 text: menu && menu.label ? menu.label : ""
93 text: menu && menu.label ? menu.label : ""
90 enabled: menu ? menu.sensitive : false
94 enabled: menu ? menu.sensitive : false
92− onActivate: model.activate(modelIndex);
97+ model.activate(modelIndex);
95 Component {
101 Component {
@@ -118,12 +124,14 @@ Item {
118 property QtObject menu: null
124 property QtObject menu: null
120 text: menu && menu.label ? menu.label : ""
126 text: menu && menu.label ? menu.label : ""
121− icon: menu ? menu.icon : ""
127+ icon: menu && menu.icon ? menu.icon : ""
122 checkable: menu ? (menu.isCheck || menu.isRadio) : false
128 checkable: menu ? (menu.isCheck || menu.isRadio) : false
123 checked: checkable ? menu.isToggled : false
129 checked: checkable ? menu.isToggled : false
124 enabled: menu ? menu.sensitive : false
130 enabled: menu ? menu.sensitive : false
126− onActivate: model.activate(modelIndex);
133+ model.activate(modelIndex);
@@ -133,11 +141,13 @@ Item {
133 property QtObject menu: null
141 property QtObject menu: null
135 text: menu && menu.label ? menu.label : ""
143 text: menu && menu.label ? menu.label : ""
136− icon: menu ? menu.icon : ""
144+ icon: menu && menu.icon ? menu.icon : ""
137 checked: menu ? menu.isToggled : false
145 checked: menu ? menu.isToggled : false
138 enabled: menu ? menu.sensitive : false
146 enabled: menu ? menu.sensitive : false
140− onActivate: model.activate(modelIndex);
149+ model.activate(modelIndex);
@@ -161,11 +171,11 @@ Item {
161 property QtObject menu: null
171 property QtObject menu: null
162 property var strengthAction: QMenuModel.UnityMenuAction {
172 property var strengthAction: QMenuModel.UnityMenuAction {
163 model: menuFactory.model ? menuFactory.model : null
173 model: menuFactory.model ? menuFactory.model : null
164 name: menu ? menu.ext.xCanonicalWifiApStrengthAction : ""
175 name: menu ? menu.ext.xCanonicalWifiApStrengthAction : ""
167 text: menu && menu.label ? menu.label : ""
178 text: menu && menu.label ? menu.label : ""
168− icon: menu ? menu.icon : ""
169 secure: menu ? menu.ext.xCanonicalWifiApIsSecure : false
179 secure: menu ? menu.ext.xCanonicalWifiApIsSecure : false
170 adHoc: menu ? menu.ext.xCanonicalWifiApIsAdhoc : false
180 adHoc: menu ? menu.ext.xCanonicalWifiApIsAdhoc : false
171 checked: menu ? menu.isToggled : false
181 checked: menu ? menu.isToggled : false
@@ -177,7 +187,47 @@ Item {
177 'x-canonical-wifi-ap-is-secure': 'bool',
187 'x-canonical-wifi-ap-is-secure': 'bool',
178 'x-canonical-wifi-ap-strength-action': 'string'});
188 'x-canonical-wifi-ap-strength-action': 'string'});
180− onActivate: model.activate(modelIndex);
191+ model.activate(modelIndex);
198+ ICMessaging.MessageMenuItemFactory {
200+ property QtObject menu: null
201+ model: menuFactory.model ? menuFactory.model : null
203+ Component.onCompleted: {
204+ model.loadExtendedAttributes(modelIndex, {'x-canonical-time': 'int64',
205+ 'x-canonical-text': 'string',
206+ 'x-canonical-message-actions': 'variant',
208+ 'x-canonical-app-icon': 'icon'});
215+ ICMessaging.GroupedMessage {
216+ property QtObject menu: null
218+ title: menu && menu.label ? menu.label : ""
219+ count: menu && menu.actionState[0] ? menu.actionState[0] : "0"
220+ appIcon: menu && menu.ext.icon !== undefined ? menu.ext.icon : "qrc:/indicators/artwork/messaging/default_app.svg"
222+ Component.onCompleted: {
223+ model.loadExtendedAttributes(modelIndex, {'icon': 'icon'});
226+ model.activate(modelIndex, true);
229+ model.activate(modelIndex, false);