on xenial help sign in
merged with parent
2633478Nick Dedekind
plugins/Unity/Indicators/Messaging/qml/MessageMenuItemFactory.qml+35−28
@@ -29,8 +29,8 @@ Indicators.BaseMenuItem {
29 property QtObject menuData: null
29 property QtObject menuData: null
30 property var menuIndex: undefined
30 property var menuIndex: undefined
31
31
32− property var extAttrib: menuData && menuData.ext ? menuData.ext : undefined
32+ property var extendedData: menuData && menuData.ext || undefined
33− property var actionsDescription: extAttrib && extAttrib.hasOwnProperty("xCanonicalMessageActions") ? extAttrib.xCanonicalMessageActions : undefined
33+ property var actionsDescription: getExtendedProperty(extendedData, "xCanonicalMessageActions", undefined)
34
34
35 onMenuModelChanged: {
35 onMenuModelChanged: {
36 loadAttributes();
36 loadAttributes();
@@ -43,10 +43,17 @@ Indicators.BaseMenuItem {
43 if (!menuModel || menuIndex == undefined) return;
43 if (!menuModel || menuIndex == undefined) return;
44
44
45 menuModel.loadExtendedAttributes(menuIndex, {'x-canonical-time': 'int64',
45 menuModel.loadExtendedAttributes(menuIndex, {'x-canonical-time': 'int64',
46− 'x-canonical-text': 'string',
46+ 'x-canonical-text': 'string',
47− 'x-canonical-message-actions': 'variant',
47+ 'x-canonical-message-actions': 'variant',
48− 'icon': 'icon',
48+ 'icon': 'icon',
49− 'x-canonical-app-icon': 'icon'});
49+ 'x-canonical-app-icon': 'icon'});
50+ }
51+
52+ function getExtendedProperty(object, propertyName, defaultValue) {
53+ if (object && object.hasOwnProperty(propertyName)) {
54+ return object[propertyName];
55+ }
56+ return defaultValue;
50 }
57 }
51
58
52 implicitHeight: contents.status == Loader.Ready ? contents.item.implicitHeight : 0
59 implicitHeight: contents.status == Loader.Ready ? contents.item.implicitHeight : 0
@@ -61,12 +68,12 @@ Indicators.BaseMenuItem {
61 id: simpleTextMessage
68 id: simpleTextMessage
62 SimpleTextMessage {
69 SimpleTextMessage {
63 // text
70 // text
64− title: menuData && menuData.label ? menuData.label : ""
71+ title: menuData && menuData.label || ""
65− time: extAttrib && extAttrib.hasOwnProperty("xCanonicalTime") ? extAttrib.xCanonicalTime : 0
72+ time: getExtendedProperty(extendedData, "xCanonicalTime", 0)
66− message: extAttrib && extAttrib.hasOwnProperty("xCanonicalText") ? extAttrib.xCanonicalText : ""
73+ message: getExtendedProperty(extendedData, "xCanonicalText", "")
67 // icons
74 // icons
68− avatar: extAttrib && extAttrib.hasOwnProperty("icon") ? extAttrib.icon : "qrc:/indicators/artwork/messaging/default_contact.png"
75+ avatar: getExtendedProperty(extendedData, "icon", "qrc:/indicators/artwork/messaging/default_contact.png")
69− appIcon: extAttrib && extAttrib.hasOwnProperty("xCanonicalAppIcon") ? extAttrib.xCanonicalAppIcon : "qrc:/indicators/artwork/messaging/default_app.svg"
76+ appIcon: getExtendedProperty(extendedData, "xCanonicalAppIcon", "qrc:/indicators/artwork/messaging/default_app.svg")
70
77
71 onActivateApp: {
78 onActivateApp: {
72 menuModel.activate(menuIndex, true);
79 menuModel.activate(menuIndex, true);
@@ -89,17 +96,17 @@ Indicators.BaseMenuItem {
89 property var replyAction: QMenuModel.UnityMenuAction {
96 property var replyAction: QMenuModel.UnityMenuAction {
90 model: menuModel
97 model: menuModel
91 index: menuIndex
98 index: menuIndex
92− name: replyActionDescription !== undefined ? replyActionDescription.name : ""
99+ name: getExtendedProperty(replyActionDescription, "name", "")
93 }
100 }
94
101
95 // text
102 // text
96− title: menuData && menuData.label ? menuData.label : ""
103+ title: menuData && menuData.label || ""
97− time: extAttrib && extAttrib.hasOwnProperty("xCanonicalTime") ? extAttrib.xCanonicalTime : 0
104+ time: getExtendedProperty(extendedData, "xCanonicalTime", 0)
98− message: extAttrib && extAttrib.hasOwnProperty("xCanonicalText") ? extAttrib.xCanonicalText : ""
105+ message: getExtendedProperty(extendedData, "xCanonicalText", "")
99− replyButtonText: replyActionDescription !== undefined && replyActionDescription.hasOwnProperty("label") ? replyActionDescription.label : "Send"
106+ replyButtonText: getExtendedProperty(replyActionDescription, "label", "Send")
100 // icons
107 // icons
101− avatar: extAttrib && extAttrib.hasOwnProperty("icon") ? extAttrib.icon : "qrc:/indicators/artwork/messaging/default_contact.png"
108+ avatar: getExtendedProperty(extendedData, "icon", "qrc:/indicators/artwork/messaging/default_contact.png")
102− appIcon: extAttrib && extAttrib.hasOwnProperty("xCanonicalAppIcon") ? extAttrib.xCanonicalAppIcon : "qrc:/indicators/artwork/messaging/default_app.svg"
109+ appIcon: getExtendedProperty(extendedData, "xCanonicalAppIcon", "qrc:/indicators/artwork/messaging/default_app.svg")
103 // actions
110 // actions
104 replyEnabled: replyAction.valid && replyAction.enabled
111 replyEnabled: replyAction.valid && replyAction.enabled
105
112
@@ -128,24 +135,24 @@ Indicators.BaseMenuItem {
128 property var activateAction: QMenuModel.UnityMenuAction {
135 property var activateAction: QMenuModel.UnityMenuAction {
129 model: menuModel
136 model: menuModel
130 index: menuIndex
137 index: menuIndex
131− name: activateActionDescription !== undefined ? activateActionDescription.name : ""
138+ name: getExtendedProperty(activateActionDescription, "name", "")
132 }
139 }
133 property var replyAction: QMenuModel.UnityMenuAction {
140 property var replyAction: QMenuModel.UnityMenuAction {
134 model: menuModel
141 model: menuModel
135 index: menuIndex
142 index: menuIndex
136− name: replyActionDescription !== undefined ? replyActionDescription.name : ""
143+ name: getExtendedProperty(replyActionDescription, "name", "")
137 }
144 }
138
145
139 // text
146 // text
140− title: menuData && menuData.label ? menuData.label : ""
147+ title: menuData && menuData.label || ""
141− time: extAttrib && extAttrib.hasOwnProperty("xCanonicalTime") ? extAttrib.xCanonicalTime : ""
148+ time: getExtendedProperty(extendedData, "xCanonicalTime", 0)
142− message: extAttrib && extAttrib.hasOwnProperty("xCanonicalText") ? extAttrib.xCanonicalText : ""
149+ message: getExtendedProperty(extendedData, "xCanonicalText", "")
143− actionButtonText: activateActionDescription !== undefined && activateActionDescription.hasOwnProperty("label") ? activateActionDescription.label : "Call back"
150+ actionButtonText: getExtendedProperty(activateActionDescription, "label", "Call back")
144− replyButtonText: replyActionDescription !== undefined && replyActionDescription.hasOwnProperty("label") ? replyActionDescription.label : "Send"
151+ replyButtonText: getExtendedProperty(replyActionDescription, "label", "Send")
145− replyMessages: replyActionDescription !== undefined && replyActionDescription.hasOwnProperty("parameter-hint") ? replyActionDescription["parameter-hint"] : ""
152+ replyMessages: getExtendedProperty(replyActionDescription, "parameter-hint", "")
146 // icons
153 // icons
147− avatar: extAttrib && extAttrib.hasOwnProperty("icon") ? extAttrib.icon : "qrc:/indicators/artwork/messaging/default_contact.png"
154+ avatar: getExtendedProperty(extendedData, "icon", "qrc:/indicators/artwork/messaging/default_contact.png")
148− appIcon: extAttrib && extAttrib.hasOwnProperty("xCanonicalAppIcon") ? extAttrib.xCanonicalAppIcon : "qrc:/indicators/artwork/messaging/default_app.svg"
155+ appIcon: getExtendedProperty(extendedData, "xCanonicalAppIcon", "qrc:/indicators/artwork/messaging/default_app.svg")
149 // actions
156 // actions
150 activateEnabled: activateAction.valid && activateAction.enabled
157 activateEnabled: activateAction.valid && activateAction.enabled
151 replyEnabled: replyAction.valid && replyAction.enabled
158 replyEnabled: replyAction.valid && replyAction.enabled
plugins/Unity/Indicators/qml/MenuItemFactory.qml+46−39
@@ -50,6 +50,13 @@ Item {
50 "unity.widgets.systemsettings.tablet.accesspoint" : accessPoint,
50 "unity.widgets.systemsettings.tablet.accesspoint" : accessPoint,
51 }
51 }
52
52
53+ function getExtendedProperty(object, propertyName, defaultValue) {
54+ if (object && object.hasOwnProperty(propertyName)) {
55+ return object[propertyName];
56+ }
57+ return defaultValue;
58+ }
59+
53 Component { id: divMenu; Indicators.DivMenuItem {} }
60 Component { id: divMenu; Indicators.DivMenuItem {} }
54
61
55 Component {
62 Component {
@@ -58,23 +65,23 @@ Item {
58 property QtObject menuData: null
65 property QtObject menuData: null
59 property var menuModel: menuFactory.menuModel
66 property var menuModel: menuFactory.menuModel
60 property var menuIndex: undefined
67 property var menuIndex: undefined
61− property var extAttrib: menuData && menuData.ext ? menuData.ext : undefined
68+ property var extendedData: menuData && menuData.ext || undefined
62
69
63− text: menuData && menuData.label ? menuData.label : ""
70+ text: menuData && menuData.label || ""
64− icon: menuData && menuData.icon ? menuData.icon : ""
71+ iconSource: menuData && menuData.icon || ""
65− minIcon: extAttrib && extAttrib.hasOwnProperty("minIcon") ? extAttrib.minIcon : ""
72+ minIcon: getExtendedProperty(extendedData, "minIcon", "")
66− maxIcon: extAttrib && extAttrib.hasOwnProperty("maxIcon") ? extAttrib.maxIcon : ""
73+ maxIcon: getExtendedProperty(extendedData, "minIcon", "")
67
74
68− minimumValue: extAttrib && extAttrib.hasOwnProperty("minValue") ? extAttrib.minValue : 0.0
75+ minimumValue: getExtendedProperty(extendedData, "minValue", 0.0)
69 maximumValue: {
76 maximumValue: {
70− var maximum = extAttrib && extAttrib.hasOwnProperty("maxValue") ? extAttrib.maxValue : 1.0
77+ var maximum = getExtendedProperty(extendedData, "maxValue", 1.0);
71 if (maximum <= minimumValue) {
78 if (maximum <= minimumValue) {
72 return minimumValue + 1;
79 return minimumValue + 1;
73 }
80 }
74 return maximum;
81 return maximum;
75 }
82 }
76− value: menuData ? menuData.actionState : 0.0
83+ value: menuData && menuData.actionState || 0.0
77− enabled: menuData ? menuData.sensitive : false
84+ enabled: menuData && menuData.sensitive || false
78
85
79 onMenuModelChanged: {
86 onMenuModelChanged: {
80 loadAttributes();
87 loadAttributes();
@@ -89,9 +96,9 @@ Item {
89 function loadAttributes() {
96 function loadAttributes() {
90 if (!menuModel || menuIndex == undefined) return;
97 if (!menuModel || menuIndex == undefined) return;
91 menuModel.loadExtendedAttributes(menuIndex, {'min-value': 'double',
98 menuModel.loadExtendedAttributes(menuIndex, {'min-value': 'double',
92− 'max-value': 'double',
99+ 'max-value': 'double',
93− 'min-icon': 'icon',
100+ 'min-icon': 'icon',
94− 'max-icon': 'icon'});
101+ 'max-icon': 'icon'});
95 }
102 }
96 }
103 }
97 }
104 }
@@ -103,8 +110,8 @@ Item {
103 property var menuModel: menuFactory.menuModel
110 property var menuModel: menuFactory.menuModel
104 property var menuIndex: undefined
111 property var menuIndex: undefined
105
112
106− text: menuData && menuData.label ? menuData.label : ""
113+ text: menuData && menuData.label || ""
107− enabled: menuData ? menuData.sensitive : false
114+ enabled: menuData && menuData.sensitive || false
108
115
109 onActivate: {
116 onActivate: {
110 menuModel.activate(menuIndex);
117 menuModel.activate(menuIndex);
@@ -118,7 +125,7 @@ Item {
118 property QtObject menuData: null
125 property QtObject menuData: null
119 property var menuIndex: undefined
126 property var menuIndex: undefined
120
127
121− text: menuData && menuData.label ? menuData.label : ""
128+ text: menuData && menuData.label || ""
122 }
129 }
123 }
130 }
124
131
@@ -128,10 +135,10 @@ Item {
128 property QtObject menuData: null
135 property QtObject menuData: null
129 property var menuIndex: undefined
136 property var menuIndex: undefined
130
137
131− text: menuData && menuData.label ? menuData.label : ""
138+ text: menuData && menuData.label || ""
132− icon: menuData ? menuData.icon : ""
139+ iconSource: menuData && menuData.icon || ""
133− value : menuData ? menuData.actionState : 0.0
140+ value : menuData && menuData.actionState || 0.0
134− enabled: menuData ? menuData.sensitive : false
141+ enabled: menuData && menuData.sensitive || false
135 }
142 }
136 }
143 }
137
144
@@ -141,11 +148,11 @@ Item {
141 property QtObject menuData: null
148 property QtObject menuData: null
142 property var menuIndex: undefined
149 property var menuIndex: undefined
143
150
144− text: menuData && menuData.label ? menuData.label : ""
151+ text: menuData && menuData.label || ""
145− icon: menuData && menuData.icon ? menuData.icon : ""
152+ iconSource: menuData && menuData.icon || ""
153+ enabled: menuData && menuData.sensitive || false
146 checkable: menuData ? (menuData.isCheck || menuData.isRadio) : false
154 checkable: menuData ? (menuData.isCheck || menuData.isRadio) : false
147 checked: checkable ? menuData.isToggled : false
155 checked: checkable ? menuData.isToggled : false
148− enabled: menuData ? menuData.sensitive : false
149
156
150 onActivate: {
157 onActivate: {
151 menuModel.activate(menuIndex);
158 menuModel.activate(menuIndex);
@@ -160,10 +167,10 @@ Item {
160 property QtObject menuData: null
167 property QtObject menuData: null
161 property var menuIndex: undefined
168 property var menuIndex: undefined
162
169
163− text: menuData && menuData.label ? menuData.label : ""
170+ text: menuData && menuData.label || ""
164− icon: menuData && menuData.icon ? menuData.icon : ""
171+ iconSource: menuData && menuData.icon || ""
172+ enabled: menuData && menuData.sensitive || false
165 checked: menuData ? menuData.isToggled : false
173 checked: menuData ? menuData.isToggled : false
166− enabled: menuData ? menuData.sensitive : false
167
174
168 onActivate: {
175 onActivate: {
169 menuModel.activate(menuIndex);
176 menuModel.activate(menuIndex);
@@ -178,10 +185,10 @@ Item {
178 property QtObject menuData: null
185 property QtObject menuData: null
179 property var menuModel: menuFactory.menuModel
186 property var menuModel: menuFactory.menuModel
180 property var menuIndex: undefined
187 property var menuIndex: undefined
181− property var extAttrib: menuData && menuData.ext ? menuData.ext : undefined
188+ property var extendedData: menuData && menuData.ext || undefined
182
189
183− text: menuData && menuData.label ? menuData.label : ""
190+ text: menuData && menuData.label || ""
184− busy: extAttrib && extAttrib.hasOwnProperty("xCanonicalBusyAction") ? extAttrib.xCanonicalBusyAction : false
191+ busy: getExtendedProperty(extendedData, "xCanonicalBusyAction", false)
185
192
186 onMenuModelChanged: {
193 onMenuModelChanged: {
187 loadAttributes();
194 loadAttributes();
@@ -203,20 +210,20 @@ Item {
203 property QtObject menuData: null
210 property QtObject menuData: null
204 property var menuModel: menuFactory.menuModel
211 property var menuModel: menuFactory.menuModel
205 property var menuIndex: undefined
212 property var menuIndex: undefined
206− property var extAttrib: menuData && menuData.ext ? menuData.ext : undefined
213+ property var extendedData: menuData && menuData.ext || undefined
207
214
208 property var strengthAction: QMenuModel.UnityMenuAction {
215 property var strengthAction: QMenuModel.UnityMenuAction {
209 model: menuModel
216 model: menuModel
210 index: menuIndex
217 index: menuIndex
211− name: extAttrib && extAttrib.hasOwnProperty("xCanonicalWifiApStrengthAction") ? extAttrib.xCanonicalWifiApStrengthAction : ""
218+ name: getExtendedProperty(extendedData, "xCanonicalWifiApStrengthAction", "")
212 }
219 }
213
220
214− text: menuData && menuData.label ? menuData.label : ""
221+ text: menuData && menuData.label || ""
222+ enabled: menuData && menuData.sensitive || false
215− secure: extAttrib && extAttrib.hasOwnProperty("xCanonicalWifiApIsSecure") ? extAttrib.xCanonicalWifiApIsSecure : false
223+ secure: getExtendedProperty(extendedData, "xCanonicalWifiApIsSecure", false)
216− adHoc: extAttrib && extAttrib.hasOwnProperty("xCanonicalWifiApIsAdhoc") ? extAttrib.xCanonicalWifiApIsAdhoc : false
224+ adHoc: getExtendedProperty(extendedData, "xCanonicalWifiApIsAdhoc", false)
217 checked: menuData ? menuData.isToggled : false
225 checked: menuData ? menuData.isToggled : false
218 signalStrength: strengthAction.valid ? strengthAction.state : 0
226 signalStrength: strengthAction.valid ? strengthAction.state : 0
219− enabled: menuData ? menuData.sensitive : false
220
227
221 onMenuModelChanged: {
228 onMenuModelChanged: {
222 loadAttributes();
229 loadAttributes();
@@ -232,8 +239,8 @@ Item {
232 function loadAttributes() {
239 function loadAttributes() {
233 if (!menuModel || menuIndex == undefined) return;
240 if (!menuModel || menuIndex == undefined) return;
234 menuModel.loadExtendedAttributes(menuIndex, {'x-canonical-wifi-ap-is-adhoc': 'bool',
241 menuModel.loadExtendedAttributes(menuIndex, {'x-canonical-wifi-ap-is-adhoc': 'bool',
235− 'x-canonical-wifi-ap-is-secure': 'bool',
242+ 'x-canonical-wifi-ap-is-secure': 'bool',
236− 'x-canonical-wifi-ap-strength-action': 'string'});
243+ 'x-canonical-wifi-ap-strength-action': 'string'});
237 }
244 }
238 }
245 }
239 }
246 }
@@ -251,11 +258,11 @@ Item {
251 property QtObject menuData: null
258 property QtObject menuData: null
252 property var menuModel: menuFactory.menuModel
259 property var menuModel: menuFactory.menuModel
253 property var menuIndex: undefined
260 property var menuIndex: undefined
254− property var extAttrib: menuData && menuData.ext ? menuData.ext : undefined
261+ property var extendedData: menuData && menuData.ext || undefined
255
262
256− title: menuData && menuData.label ? menuData.label : ""
263+ title: menuData && menuData.label || ""
264+ appIcon: getExtendedProperty(extendedData, "icon", "qrc:/indicators/artwork/messaging/default_app.svg")
257 count: menuData && menuData.actionState.length > 0 ? menuData.actionState[0] : "0"
265 count: menuData && menuData.actionState.length > 0 ? menuData.actionState[0] : "0"
258− appIcon: extAttrib && extAttrib.hasOwnProperty("icon") ? extAttrib.icon : "qrc:/indicators/artwork/messaging/default_app.svg"
259
266
260 onMenuModelChanged: {
267 onMenuModelChanged: {
261 loadAttributes();
268 loadAttributes();