Changeset View
Changeset View
Standalone View
Standalone View
applets/devicenotifier/package/contents/ui/devicenotifier.qml
Show First 20 Lines • Show All 196 Lines • ▼ Show 20 Line(s) | 183 | PlasmaCore.SortFilterModel { | |||
---|---|---|---|---|---|
197 | } | 197 | } | ||
198 | sortRole: "Timestamp" | 198 | sortRole: "Timestamp" | ||
199 | sortOrder: Qt.DescendingOrder | 199 | sortOrder: Qt.DescendingOrder | ||
200 | } | 200 | } | ||
201 | 201 | | |||
202 | PlasmaCore.DataSource { | 202 | PlasmaCore.DataSource { | ||
203 | id: statusSource | 203 | id: statusSource | ||
204 | engine: "devicenotifications" | 204 | engine: "devicenotifications" | ||
205 | property string last | 205 | property var lastMessages: ({}) | ||
206 | property string lastUdi | 206 | property bool trigger | ||
207 | onSourceAdded: { | 207 | onSourceAdded: { | ||
208 | last = source; | | |||
209 | disconnectSource(source); | 208 | disconnectSource(source); | ||
210 | connectSource(source); | 209 | connectSource(source); | ||
211 | } | 210 | } | ||
212 | onSourceRemoved: disconnectSource(source) | 211 | onSourceRemoved: { | ||
212 | disconnectSource(source) | ||||
213 | } | ||||
213 | onDataChanged: { | 214 | onDataChanged: { | ||
214 | if (last) { | 215 | trigger = false | ||
215 | lastUdi = data[last].udi | 216 | for (var i = 0; i < sources.length; ++i) { | ||
216 | 217 | // Source is formatted as follows: "<udi> notification" | |||
217 | if (sdSource.isViableDevice(lastUdi)) { | 218 | var udi = sources[i].split(' ')[0] | ||
bruns: would be much simpler to use `udi = data[sources[i]].udi` | |||||
219 | if (data[sources[i]].error.length > 0) { | ||||
220 | lastMessages[udi] = data[sources[i]] | ||||
221 | if (sdSource.isViableDevice(udi) && !plasmoid.expanded) { | ||||
218 | plasmoid.expanded = true | 222 | plasmoid.expanded = true | ||
219 | plasmoid.fullRepresentationItem.spontaneousOpen = true; | 223 | plasmoid.fullRepresentationItem.spontaneousOpen = true; | ||
220 | } | 224 | } | ||
225 | } else { | ||||
226 | delete(lastMessages[udi]) | ||||
anthonyfieroni: ```clearMessage(udi)``` | |||||
227 | } | ||||
221 | } | 228 | } | ||
229 | trigger = true | ||||
230 | } | ||||
231 | | ||||
232 | function clearMessages() { | ||||
233 | lastMessages = ({}) | ||||
222 | } | 234 | } | ||
223 | 235 | | |||
224 | function clearMessage() { | 236 | function clearMessage(udi) { | ||
225 | last = "" | 237 | delete(lastMessages[udi]) | ||
226 | lastUdi = "" | | |||
227 | } | 238 | } | ||
228 | } | 239 | } | ||
229 | 240 | | |||
230 | Component.onCompleted: { | 241 | Component.onCompleted: { | ||
231 | if (sdSource.connectedSources.count === 0) { | 242 | if (sdSource.connectedSources.count === 0) { | ||
232 | Plasmoid.status = PlasmaCore.Types.PassiveStatus; | 243 | Plasmoid.status = PlasmaCore.Types.PassiveStatus; | ||
233 | } | 244 | } | ||
234 | 245 | | |||
▲ Show 20 Lines • Show All 69 Lines • Show Last 20 Lines |
would be much simpler to use udi = data[sources[i]].udi