on xenial help sign in
Prettied up with property abstraction
406e614Nick Dedekind
plugins/Unity/Indicators/Messaging/qml/MessageMenuItemFactory.qml+31−24
@@ -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 extendedData: menuData && menuData.ext ? menuData.ext : undefined
32+ property var extendedData: getProperty(menuData, "ext", undefined)
33− property var actionsDescription: extendedData && extendedData.hasOwnProperty("xCanonicalMessageActions") ? extendedData.xCanonicalMessageActions : undefined
33+ property var actionsDescription: getProperty(extendedData, "xCanonicalMessageActions", undefined)
34
34
35 onMenuModelChanged: {
35 onMenuModelChanged: {
36 loadAttributes();
36 loadAttributes();
@@ -49,6 +49,13 @@ Indicators.BaseMenuItem {
49 'x-canonical-app-icon': 'icon'});
49 'x-canonical-app-icon': 'icon'});
50 }
50 }
51
51
52+ function getProperty(object, propertyName, defaultValue) {
53+ if (object && object.hasOwnProperty(propertyName)) {
54+ return object[propertyName];
55+ }
56+ return defaultValue;
57+ }
58+
52 implicitHeight: contents.status == Loader.Ready ? contents.item.implicitHeight : 0
59 implicitHeight: contents.status == Loader.Ready ? contents.item.implicitHeight : 0
53
60
54 Loader {
61 Loader {
@@ -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: getProperty(menuData, "label", "")
65− time: extendedData && extendedData.hasOwnProperty("xCanonicalTime") ? extendedData.xCanonicalTime : 0
72+ time: getProperty(extendedData, "xCanonicalTime", 0)
66− message: extendedData && extendedData.hasOwnProperty("xCanonicalText") ? extendedData.xCanonicalText : ""
73+ message: getProperty(extendedData, "xCanonicalText", "")
67 // icons
74 // icons
68− avatar: extendedData && extendedData.hasOwnProperty("icon") ? extendedData.icon : "qrc:/indicators/artwork/messaging/default_contact.png"
75+ avatar: getProperty(extendedData, "icon", "qrc:/indicators/artwork/messaging/default_contact.png")
69− appIcon: extendedData && extendedData.hasOwnProperty("xCanonicalAppIcon") ? extendedData.xCanonicalAppIcon : "qrc:/indicators/artwork/messaging/default_app.svg"
76+ appIcon: getProperty(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: getProperty(replyActionDescription, "name", "")
93 }
100 }
94
101
95 // text
102 // text
96− title: menuData && menuData.label ? menuData.label : ""
103+ title: getProperty(menuData, "label", "")
97− time: extendedData && extendedData.hasOwnProperty("xCanonicalTime") ? extendedData.xCanonicalTime : 0
104+ time: getProperty(extendedData, "xCanonicalTime", 0)
98− message: extendedData && extendedData.hasOwnProperty("xCanonicalText") ? extendedData.xCanonicalText : ""
105+ message: getProperty(extendedData, "xCanonicalText", "")
99− replyButtonText: replyActionDescription !== undefined && replyActionDescription.hasOwnProperty("label") ? replyActionDescription.label : "Send"
106+ replyButtonText: getProperty(replyActionDescription, "label", "Send")
100 // icons
107 // icons
101− avatar: extendedData && extendedData.hasOwnProperty("icon") ? extendedData.icon : "qrc:/indicators/artwork/messaging/default_contact.png"
108+ avatar: getProperty(extendedData, "icon", "qrc:/indicators/artwork/messaging/default_contact.png")
102− appIcon: extendedData && extendedData.hasOwnProperty("xCanonicalAppIcon") ? extendedData.xCanonicalAppIcon : "qrc:/indicators/artwork/messaging/default_app.svg"
109+ appIcon: getProperty(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: getProperty(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: getProperty(replyActionDescription, "name", "")
137 }
144 }
138
145
139 // text
146 // text
140− title: menuData && menuData.label ? menuData.label : ""
147+ title: getProperty(menuData, "label", "")
141− time: extendedData && extendedData.hasOwnProperty("xCanonicalTime") ? extendedData.xCanonicalTime : ""
148+ time: getProperty(extendedData, "xCanonicalTime", 0)
142− message: extendedData && extendedData.hasOwnProperty("xCanonicalText") ? extendedData.xCanonicalText : ""
149+ message: getProperty(extendedData, "xCanonicalText", "")
143− actionButtonText: activateActionDescription !== undefined && activateActionDescription.hasOwnProperty("label") ? activateActionDescription.label : "Call back"
150+ actionButtonText: getProperty(activateActionDescription, "label", "Call back")
144− replyButtonText: replyActionDescription !== undefined && replyActionDescription.hasOwnProperty("label") ? replyActionDescription.label : "Send"
151+ replyButtonText: getProperty(replyActionDescription, "label", "Send")
145− replyMessages: replyActionDescription !== undefined && replyActionDescription.hasOwnProperty("parameter-hint") ? replyActionDescription["parameter-hint"] : ""
152+ replyMessages: getProperty(replyActionDescription, "parameter-hint", "")
146 // icons
153 // icons
147− avatar: extendedData && extendedData.hasOwnProperty("icon") ? extendedData.icon : "qrc:/indicators/artwork/messaging/default_contact.png"
154+ avatar: getProperty(extendedData, "icon", "qrc:/indicators/artwork/messaging/default_contact.png")
148− appIcon: extendedData && extendedData.hasOwnProperty("xCanonicalAppIcon") ? extendedData.xCanonicalAppIcon : "qrc:/indicators/artwork/messaging/default_app.svg"
155+ appIcon: getProperty(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+41−34
@@ -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 getProperty(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 extendedData: menuData && menuData.ext ? menuData.ext : undefined
68+ property var extendedData: getProperty(menuData, "ext", undefined)
62
69
63− text: menuData && menuData.label ? menuData.label : ""
70+ text: getProperty(menuData, "label", "")
64− icon: menuData && menuData.icon ? menuData.icon : ""
71+ icon: getProperty(menuData, "icon", "")
65− minIcon: extendedData && extendedData.hasOwnProperty("minIcon") ? extendedData.minIcon : ""
72+ minIcon: getProperty(extendedData, "minIcon", "")
66− maxIcon: extendedData && extendedData.hasOwnProperty("maxIcon") ? extendedData.maxIcon : ""
73+ maxIcon: getProperty(extendedData, "minIcon", "")
67
74
68− minimumValue: extendedData && extendedData.hasOwnProperty("minValue") ? extendedData.minValue : 0.0
75+ minimumValue: getProperty(extendedData, "minValue", 0.0)
69 maximumValue: {
76 maximumValue: {
70− var maximum = extendedData && extendedData.hasOwnProperty("maxValue") ? extendedData.maxValue : 1.0
77+ var maximum = getProperty(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: getProperty(menuData, "actionState", 0.0)
77− enabled: menuData ? menuData.sensitive : false
84+ enabled: getProperty(menuData, "sensitive", false)
78
85
79 onMenuModelChanged: {
86 onMenuModelChanged: {
80 loadAttributes();
87 loadAttributes();
@@ -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: getProperty(menuData, "label", "")
107− enabled: menuData ? menuData.sensitive : false
114+ enabled: getProperty(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: getProperty(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: getProperty(menuData, "label", "")
132− icon: menuData ? menuData.icon : ""
139+ icon: getProperty(menuData, "icon", "")
133− value : menuData ? menuData.actionState : 0.0
140+ value : getProperty(menuData, "actionState", 0.0)
134− enabled: menuData ? menuData.sensitive : false
141+ enabled: getProperty(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: getProperty(menuData, "label", "")
145− icon: menuData && menuData.icon ? menuData.icon : ""
152+ icon: getProperty(menuData, "icon", "")
153+ enabled: getProperty(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: getProperty(menuData, "label", "")
164− icon: menuData && menuData.icon ? menuData.icon : ""
171+ icon: getProperty(menuData, "icon", "")
172+ enabled: getProperty(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 extendedData: menuData && menuData.ext ? menuData.ext : undefined
188+ property var extendedData: getProperty(menuData, "ext", undefined)
182
189
183− text: menuData && menuData.label ? menuData.label : ""
190+ text: getProperty(menuData, "label", "")
184− busy: extendedData && extendedData.hasOwnProperty("xCanonicalBusyAction") ? extendedData.xCanonicalBusyAction : false
191+ busy: getProperty(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 extendedData: menuData && menuData.ext ? menuData.ext : undefined
213+ property var extendedData: getProperty(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: extendedData && extendedData.hasOwnProperty("xCanonicalWifiApStrengthAction") ? extendedData.xCanonicalWifiApStrengthAction : ""
218+ name: getProperty(extendedData, "xCanonicalWifiApStrengthAction", "")
212 }
219 }
213
220
214− text: menuData && menuData.label ? menuData.label : ""
221+ text: getProperty(menuData, "label", "")
222+ enabled: getProperty(menuData, "sensitive", false)
215− secure: extendedData && extendedData.hasOwnProperty("xCanonicalWifiApIsSecure") ? extendedData.xCanonicalWifiApIsSecure : false
223+ secure: getProperty(extendedData, "xCanonicalWifiApIsSecure", false)
216− adHoc: extendedData && extendedData.hasOwnProperty("xCanonicalWifiApIsAdhoc") ? extendedData.xCanonicalWifiApIsAdhoc : false
224+ adHoc: getProperty(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();
@@ -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 extendedData: menuData && menuData.ext ? menuData.ext : undefined
261+ property var extendedData: getProperty(menuData, "ext", undefined)
255
262
256− title: menuData && menuData.label ? menuData.label : ""
263+ title: getProperty(menuData, "label", "")
264+ appIcon: getProperty(extendedData, "icon", "") && extendedData.hasOwnProperty("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: extendedData && extendedData.hasOwnProperty("icon") ? extendedData.icon : "qrc:/indicators/artwork/messaging/default_app.svg"
259
266
260 onMenuModelChanged: {
267 onMenuModelChanged: {
261 loadAttributes();
268 loadAttributes();