summaryrefslogtreecommitdiffstats
path: root/framework/domain
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-03-20 09:33:42 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-03-20 09:58:00 +0100
commitc3ba13d4240005cb9e7bdaca5977114e74bd0e9a (patch)
tree1ee5d114c6ac0c9680106059b48c22b3d65e99ff /framework/domain
parent4b501d7c7bb37423a3963b85a74e804e22368095 (diff)
downloadkube-c3ba13d4240005cb9e7bdaca5977114e74bd0e9a.tar.gz
kube-c3ba13d4240005cb9e7bdaca5977114e74bd0e9a.zip
Support synchronizing individual accounts
Diffstat (limited to 'framework/domain')
-rw-r--r--framework/domain/foldercontroller.cpp3
-rw-r--r--framework/domain/foldercontroller.h1
2 files changed, 4 insertions, 0 deletions
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