summaryrefslogtreecommitdiffstats
path: root/framework/domain/foldercontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'framework/domain/foldercontroller.cpp')
-rw-r--r--framework/domain/foldercontroller.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/framework/domain/foldercontroller.cpp b/framework/domain/foldercontroller.cpp
index d06ccb52..65c34dba 100644
--- a/framework/domain/foldercontroller.cpp
+++ b/framework/domain/foldercontroller.cpp
@@ -23,20 +23,22 @@
23 23
24SINK_DEBUG_AREA("foldercontroller"); 24SINK_DEBUG_AREA("foldercontroller");
25 25
26using namespace Sink;
27using namespace Sink::ApplicationDomain;
28
26FolderController::FolderController() 29FolderController::FolderController()
27 : Kube::Controller(), 30 : Kube::Controller(),
28 action_synchronize{new Kube::ControllerAction{this, &FolderController::synchronize}} 31 action_synchronize{new Kube::ControllerAction{this, &FolderController::synchronize}},
32 action_moveToFolder{new Kube::ControllerAction{this, &FolderController::moveToFolder}}
29{ 33{
30} 34}
31 35
32void FolderController::synchronize() 36void FolderController::synchronize()
33{ 37{
34 using namespace Sink;
35 using namespace Sink::ApplicationDomain;
36 auto job = [&] { 38 auto job = [&] {
37 if (auto folder = getFolder()) { 39 if (auto folder = getFolder()) {
38 SinkLog() << "Synchronizing folder " << folder->resourceInstanceIdentifier() << folder->identifier(); 40 SinkLog() << "Synchronizing folder " << folder->resourceInstanceIdentifier() << folder->identifier();
39 auto scope = SyncScope().resourceFilter(folder->resourceInstanceIdentifier()).filter<Mail::Folder>(QVariant::fromValue(folder->identifier())); 41 auto scope = SyncScope().resourceFilter(folder->resourceInstanceIdentifier()).filter<ApplicationDomain::Mail::Folder>(QVariant::fromValue(folder->identifier()));
40 scope.setType<ApplicationDomain::Mail>(); 42 scope.setType<ApplicationDomain::Mail>();
41 return Store::synchronize(scope); 43 return Store::synchronize(scope);
42 } else { 44 } else {
@@ -47,3 +49,11 @@ void FolderController::synchronize()
47 run(job); 49 run(job);
48} 50}
49 51
52void FolderController::moveToFolder()
53{
54 auto mail = getMail();
55 auto targetFolder = getFolder();
56 mail->setFolder(*targetFolder);
57 SinkLog() << "Moving to folder " << mail->identifier() << targetFolder->identifier();
58 run(Store::modify(*mail));
59}