diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-03-20 09:33:42 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-03-20 09:58:00 +0100 |
commit | c3ba13d4240005cb9e7bdaca5977114e74bd0e9a (patch) | |
tree | 1ee5d114c6ac0c9680106059b48c22b3d65e99ff /framework/domain | |
parent | 4b501d7c7bb37423a3963b85a74e804e22368095 (diff) | |
download | kube-c3ba13d4240005cb9e7bdaca5977114e74bd0e9a.tar.gz kube-c3ba13d4240005cb9e7bdaca5977114e74bd0e9a.zip |
Support synchronizing individual accounts
Diffstat (limited to 'framework/domain')
-rw-r--r-- | framework/domain/foldercontroller.cpp | 3 | ||||
-rw-r--r-- | framework/domain/foldercontroller.h | 1 |
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() | |||
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 | ||