From 41927399c33eae952f78b8361d145c00c5f744d2 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 10 Jan 2017 12:45:30 +0100 Subject: Move to folder action --- framework/domain/foldercontroller.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'framework/domain/foldercontroller.cpp') 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 @@ SINK_DEBUG_AREA("foldercontroller"); +using namespace Sink; +using namespace Sink::ApplicationDomain; + FolderController::FolderController() : Kube::Controller(), - action_synchronize{new Kube::ControllerAction{this, &FolderController::synchronize}} + action_synchronize{new Kube::ControllerAction{this, &FolderController::synchronize}}, + action_moveToFolder{new Kube::ControllerAction{this, &FolderController::moveToFolder}} { } void FolderController::synchronize() { - using namespace Sink; - using namespace Sink::ApplicationDomain; auto job = [&] { if (auto folder = getFolder()) { SinkLog() << "Synchronizing folder " << folder->resourceInstanceIdentifier() << folder->identifier(); - auto scope = SyncScope().resourceFilter(folder->resourceInstanceIdentifier()).filter(QVariant::fromValue(folder->identifier())); + auto scope = SyncScope().resourceFilter(folder->resourceInstanceIdentifier()).filter(QVariant::fromValue(folder->identifier())); scope.setType(); return Store::synchronize(scope); } else { @@ -47,3 +49,11 @@ void FolderController::synchronize() run(job); } +void FolderController::moveToFolder() +{ + auto mail = getMail(); + auto targetFolder = getFolder(); + mail->setFolder(*targetFolder); + SinkLog() << "Moving to folder " << mail->identifier() << targetFolder->identifier(); + run(Store::modify(*mail)); +} -- cgit v1.2.3