diff options
Diffstat (limited to 'framework/domain/foldercontroller.cpp')
-rw-r--r-- | framework/domain/foldercontroller.cpp | 18 |
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 | ||
24 | SINK_DEBUG_AREA("foldercontroller"); | 24 | SINK_DEBUG_AREA("foldercontroller"); |
25 | 25 | ||
26 | using namespace Sink; | ||
27 | using namespace Sink::ApplicationDomain; | ||
28 | |||
26 | FolderController::FolderController() | 29 | FolderController::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 | ||
32 | void FolderController::synchronize() | 36 | void 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 | ||
52 | void 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 | } | ||