Changeset View
Changeset View
Standalone View
Standalone View
plasma/vaultsmodel.cpp
Show First 20 Lines • Show All 79 Lines • ▼ Show 20 Line(s) | 79 | DBus::asyncCall<VaultInfoList>(&service, "availableDevices") | | |||
---|---|---|---|---|---|
80 | onSuccess([this] (const VaultInfoList &vaultList) { | 80 | onSuccess([this] (const VaultInfoList &vaultList) { | ||
81 | const int oldSize = vaultKeys.size(); | 81 | const int oldSize = vaultKeys.size(); | ||
82 | q->beginResetModel(); | 82 | q->beginResetModel(); | ||
83 | 83 | | |||
84 | vaults.clear(); | 84 | vaults.clear(); | ||
85 | vaultKeys.clear(); | 85 | vaultKeys.clear(); | ||
86 | busyVaults.clear(); | 86 | busyVaults.clear(); | ||
87 | errorVaults.clear(); | 87 | errorVaults.clear(); | ||
88 | openVaults.clear(); | ||||
88 | 89 | | |||
89 | for (const auto& vault: vaultList) { | 90 | for (const auto& vault: vaultList) { | ||
90 | vaults[vault.device] = vault; | 91 | vaults[vault.device] = vault; | ||
91 | vaultKeys << vault.device; | 92 | vaultKeys << vault.device; | ||
92 | 93 | | |||
93 | if (vault.isBusy()) { | 94 | if (vault.isBusy()) { | ||
94 | busyVaults << vault.device; | 95 | busyVaults << vault.device; | ||
95 | } | 96 | } | ||
96 | 97 | | |||
97 | if (!vault.message.isEmpty()) { | 98 | if (!vault.message.isEmpty()) { | ||
98 | errorVaults << vault.device; | 99 | errorVaults << vault.device; | ||
99 | } | 100 | } | ||
101 | | ||||
102 | if (vault.isOpened()) { | ||||
103 | openVaults << vault.device; | ||||
104 | } | ||||
100 | } | 105 | } | ||
101 | 106 | | |||
102 | q->endResetModel(); | 107 | q->endResetModel(); | ||
103 | 108 | | |||
104 | if (vaultKeys.size() != oldSize) { | 109 | if (vaultKeys.size() != oldSize) { | ||
105 | emit q->rowCountChanged(vaultKeys.size()); | 110 | emit q->rowCountChanged(vaultKeys.size()); | ||
106 | } | 111 | } | ||
107 | 112 | | |||
108 | emit q->isBusyChanged(busyVaults.count() != 0); | 113 | emit q->isBusyChanged(busyVaults.count() != 0); | ||
109 | emit q->hasErrorChanged(errorVaults.count() != 0); | 114 | emit q->hasErrorChanged(errorVaults.count() != 0); | ||
115 | emit q->hasOpenChanged(openVaults.count() != 0); | ||||
110 | }); | 116 | }); | ||
111 | } | 117 | } | ||
112 | 118 | | |||
113 | 119 | | |||
114 | 120 | | |||
115 | void VaultsModel::Private::clearData() | 121 | void VaultsModel::Private::clearData() | ||
116 | { | 122 | { | ||
117 | q->beginResetModel(); | 123 | q->beginResetModel(); | ||
▲ Show 20 Lines • Show All 68 Lines • ▼ Show 20 Line(s) | 163 | { | |||
186 | 192 | | |||
187 | if (vaultInfo.message.isEmpty() && errorVaults.contains(device)) { | 193 | if (vaultInfo.message.isEmpty() && errorVaults.contains(device)) { | ||
188 | errorVaults.remove(device); | 194 | errorVaults.remove(device); | ||
189 | if (errorVaults.count() == 0) { | 195 | if (errorVaults.count() == 0) { | ||
190 | emit q->hasErrorChanged(false); | 196 | emit q->hasErrorChanged(false); | ||
191 | } | 197 | } | ||
192 | } | 198 | } | ||
193 | 199 | | |||
200 | // Lets see whether this warrants updates to the open flag | ||||
201 | if (vaultInfo.isOpened() && !openVaults.contains(device)) { | ||||
202 | openVaults << device; | ||||
203 | if (openVaults.count() == 1) { | ||||
204 | emit q->hasOpenChanged(true); | ||||
205 | } | ||||
206 | } | ||||
207 | | ||||
208 | if (!vaultInfo.isOpened() && openVaults.contains(device)) { | ||||
209 | openVaults.remove(device); | ||||
210 | if (openVaults.count() == 0) { | ||||
211 | emit q->hasOpenChanged(false); | ||||
212 | } | ||||
213 | } | ||||
214 | | ||||
194 | vaults[device] = vaultInfo; | 215 | vaults[device] = vaultInfo; | ||
195 | q->dataChanged(q->index(row), q->index(row)); | 216 | q->dataChanged(q->index(row), q->index(row)); | ||
196 | } | 217 | } | ||
197 | 218 | | |||
198 | 219 | | |||
199 | 220 | | |||
200 | VaultsModel::VaultsModel(QObject *parent) | 221 | VaultsModel::VaultsModel(QObject *parent) | ||
201 | : QAbstractListModel(parent) | 222 | : QAbstractListModel(parent) | ||
▲ Show 20 Lines • Show All 197 Lines • ▼ Show 20 Line(s) | |||||
399 | 420 | | |||
400 | bool VaultsModel::hasError() const | 421 | bool VaultsModel::hasError() const | ||
401 | { | 422 | { | ||
402 | return !d->errorVaults.isEmpty(); | 423 | return !d->errorVaults.isEmpty(); | ||
403 | } | 424 | } | ||
404 | 425 | | |||
405 | 426 | | |||
406 | 427 | | |||
428 | bool VaultsModel::hasOpen() const | ||||
429 | { | ||||
430 | return !d->openVaults.isEmpty(); | ||||
431 | } | ||||
432 | | ||||
433 | | ||||
434 | | ||||
407 | 435 | | |||
408 | 436 | | |||
409 | SortedVaultsModelProxy::SortedVaultsModelProxy(QObject *parent) | 437 | SortedVaultsModelProxy::SortedVaultsModelProxy(QObject *parent) | ||
410 | : QSortFilterProxyModel(parent) | 438 | : QSortFilterProxyModel(parent) | ||
411 | , m_source(new VaultsModel(this)) | 439 | , m_source(new VaultsModel(this)) | ||
412 | , m_kamd(new KActivities::Consumer(this)) | 440 | , m_kamd(new KActivities::Consumer(this)) | ||
413 | { | 441 | { | ||
414 | setSourceModel(m_source); | 442 | setSourceModel(m_source); | ||
▲ Show 20 Lines • Show All 47 Lines • Show Last 20 Lines |