diff options
-rw-r--r-- | components/mail/contents/ui/Mail.qml | 25 | ||||
-rw-r--r-- | components/package/contents/ui/AccountSwitcher.qml | 1 | ||||
-rw-r--r-- | framework/domain/foldercontroller.cpp | 3 | ||||
-rw-r--r-- | framework/domain/foldercontroller.h | 1 |
4 files changed, 30 insertions, 0 deletions
diff --git a/components/mail/contents/ui/Mail.qml b/components/mail/contents/ui/Mail.qml index 3cc0d4f4..acb75554 100644 --- a/components/mail/contents/ui/Mail.qml +++ b/components/mail/contents/ui/Mail.qml | |||
@@ -237,6 +237,23 @@ Controls2.ApplicationWindow { | |||
237 | Item { | 237 | Item { |
238 | id: accountName | 238 | id: accountName |
239 | 239 | ||
240 | KubeFramework.FolderController { | ||
241 | id: accountNameFolderController | ||
242 | accountId: accountSwitcher.accountId | ||
243 | } | ||
244 | |||
245 | Menu { | ||
246 | id: contextMenu | ||
247 | title: "Edit" | ||
248 | |||
249 | MenuItem { | ||
250 | text: "Synchronize" | ||
251 | onTriggered: { | ||
252 | accountNameFolderController.synchronizeAction.execute() | ||
253 | } | ||
254 | } | ||
255 | } | ||
256 | |||
240 | anchors { | 257 | anchors { |
241 | top: newMailButton.bottom | 258 | top: newMailButton.bottom |
242 | topMargin: Kirigami.Units.smallSpacing | 259 | topMargin: Kirigami.Units.smallSpacing |
@@ -245,6 +262,14 @@ Controls2.ApplicationWindow { | |||
245 | width: parent.width | 262 | width: parent.width |
246 | height: Kirigami.Units.gridUnit * 2 | 263 | height: Kirigami.Units.gridUnit * 2 |
247 | 264 | ||
265 | MouseArea { | ||
266 | anchors.fill: parent | ||
267 | acceptedButtons: Qt.RightButton | ||
268 | onClicked: { | ||
269 | contextMenu.popup() | ||
270 | } | ||
271 | } | ||
272 | |||
248 | Text { | 273 | Text { |
249 | anchors { | 274 | anchors { |
250 | bottom: parent.bottom | 275 | bottom: parent.bottom |
diff --git a/components/package/contents/ui/AccountSwitcher.qml b/components/package/contents/ui/AccountSwitcher.qml index 48bb2c1b..31c5e6d4 100644 --- a/components/package/contents/ui/AccountSwitcher.qml +++ b/components/package/contents/ui/AccountSwitcher.qml | |||
@@ -39,6 +39,7 @@ Controls.ToolButton { | |||
39 | 39 | ||
40 | KubeFramework.FolderController { | 40 | KubeFramework.FolderController { |
41 | id: folderController | 41 | id: folderController |
42 | accountId: accountId | ||
42 | } | 43 | } |
43 | 44 | ||
44 | KubeAccounts.AccountsModel { | 45 | KubeAccounts.AccountsModel { |
diff --git a/framework/domain/foldercontroller.cpp b/framework/domain/foldercontroller.cpp index 65c34dba..3c10f773 100644 --- a/framework/domain/foldercontroller.cpp +++ b/framework/domain/foldercontroller.cpp | |||
@@ -36,11 +36,14 @@ FolderController::FolderController() | |||
36 | void FolderController::synchronize() | 36 | void FolderController::synchronize() |
37 | { | 37 | { |
38 | auto job = [&] { | 38 | auto job = [&] { |
39 | auto accountId = getAccountId(); | ||
39 | if (auto folder = getFolder()) { | 40 | if (auto folder = getFolder()) { |
40 | SinkLog() << "Synchronizing folder " << folder->resourceInstanceIdentifier() << folder->identifier(); | 41 | SinkLog() << "Synchronizing folder " << folder->resourceInstanceIdentifier() << folder->identifier(); |
41 | auto scope = SyncScope().resourceFilter(folder->resourceInstanceIdentifier()).filter<ApplicationDomain::Mail::Folder>(QVariant::fromValue(folder->identifier())); | 42 | auto scope = SyncScope().resourceFilter(folder->resourceInstanceIdentifier()).filter<ApplicationDomain::Mail::Folder>(QVariant::fromValue(folder->identifier())); |
42 | scope.setType<ApplicationDomain::Mail>(); | 43 | scope.setType<ApplicationDomain::Mail>(); |
43 | return Store::synchronize(scope); | 44 | return Store::synchronize(scope); |
45 | } else if (!accountId.isEmpty()) { | ||
46 | return Store::synchronize(SyncScope{}.resourceFilter<ApplicationDomain::SinkResource::Account>(accountId)); | ||
44 | } else { | 47 | } else { |
45 | SinkLog() << "Synchronizing all"; | 48 | SinkLog() << "Synchronizing all"; |
46 | return Store::synchronize(SyncScope()); | 49 | return Store::synchronize(SyncScope()); |
diff --git a/framework/domain/foldercontroller.h b/framework/domain/foldercontroller.h index b56e08e8..c0815546 100644 --- a/framework/domain/foldercontroller.h +++ b/framework/domain/foldercontroller.h | |||
@@ -27,6 +27,7 @@ class FolderController : public Kube::Controller | |||
27 | Q_OBJECT | 27 | Q_OBJECT |
28 | KUBE_CONTROLLER_PROPERTY(Sink::ApplicationDomain::Folder::Ptr, Folder, folder) | 28 | KUBE_CONTROLLER_PROPERTY(Sink::ApplicationDomain::Folder::Ptr, Folder, folder) |
29 | KUBE_CONTROLLER_PROPERTY(Sink::ApplicationDomain::Mail::Ptr, Mail, mail) | 29 | KUBE_CONTROLLER_PROPERTY(Sink::ApplicationDomain::Mail::Ptr, Mail, mail) |
30 | KUBE_CONTROLLER_PROPERTY(QByteArray, AccountId, accountId) | ||
30 | KUBE_CONTROLLER_ACTION(synchronize) | 31 | KUBE_CONTROLLER_ACTION(synchronize) |
31 | KUBE_CONTROLLER_ACTION(moveToFolder) | 32 | KUBE_CONTROLLER_ACTION(moveToFolder) |
32 | 33 | ||