summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/mail/contents/ui/Mail.qml25
-rw-r--r--components/package/contents/ui/AccountSwitcher.qml1
-rw-r--r--framework/domain/foldercontroller.cpp3
-rw-r--r--framework/domain/foldercontroller.h1
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()
36void FolderController::synchronize() 36void 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