diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-01-10 12:45:30 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-01-10 12:46:33 +0100 |
commit | 41927399c33eae952f78b8361d145c00c5f744d2 (patch) | |
tree | e0d905f5b70e557e0d1dc8198231d62ac57cffe1 | |
parent | 229492f0550730a62d74935e45087683cb5f88e9 (diff) | |
download | kube-41927399c33eae952f78b8361d145c00c5f744d2.tar.gz kube-41927399c33eae952f78b8361d145c00c5f744d2.zip |
Move to folder action
-rw-r--r-- | framework/domain/foldercontroller.cpp | 18 | ||||
-rw-r--r-- | framework/domain/foldercontroller.h | 2 | ||||
-rw-r--r-- | framework/domain/mailcontroller.cpp | 12 | ||||
-rw-r--r-- | framework/domain/mailcontroller.h | 2 |
4 files changed, 29 insertions, 5 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 | } | ||
diff --git a/framework/domain/foldercontroller.h b/framework/domain/foldercontroller.h index 24d6929c..b56e08e8 100644 --- a/framework/domain/foldercontroller.h +++ b/framework/domain/foldercontroller.h | |||
@@ -26,7 +26,9 @@ class FolderController : public Kube::Controller | |||
26 | { | 26 | { |
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_ACTION(synchronize) | 30 | KUBE_CONTROLLER_ACTION(synchronize) |
31 | KUBE_CONTROLLER_ACTION(moveToFolder) | ||
30 | 32 | ||
31 | public: | 33 | public: |
32 | explicit FolderController(); | 34 | explicit FolderController(); |
diff --git a/framework/domain/mailcontroller.cpp b/framework/domain/mailcontroller.cpp index 3e5e6ed4..a5d7efb7 100644 --- a/framework/domain/mailcontroller.cpp +++ b/framework/domain/mailcontroller.cpp | |||
@@ -33,7 +33,8 @@ MailController::MailController() | |||
33 | action_markAsImportant{new Kube::ControllerAction{this, &MailController::markAsImportant}}, | 33 | action_markAsImportant{new Kube::ControllerAction{this, &MailController::markAsImportant}}, |
34 | action_moveToTrash{new Kube::ControllerAction{this, &MailController::moveToTrash}}, | 34 | action_moveToTrash{new Kube::ControllerAction{this, &MailController::moveToTrash}}, |
35 | action_restoreFromTrash{new Kube::ControllerAction{this, &MailController::restoreFromTrash}}, | 35 | action_restoreFromTrash{new Kube::ControllerAction{this, &MailController::restoreFromTrash}}, |
36 | action_remove{new Kube::ControllerAction{this, &MailController::remove}} | 36 | action_remove{new Kube::ControllerAction{this, &MailController::remove}}, |
37 | action_moveToFolder{new Kube::ControllerAction{this, &MailController::moveToFolder}} | ||
37 | { | 38 | { |
38 | QObject::connect(this, &MailController::mailChanged, &MailController::updateActions); | 39 | QObject::connect(this, &MailController::mailChanged, &MailController::updateActions); |
39 | updateActions(); | 40 | updateActions(); |
@@ -95,3 +96,12 @@ void MailController::remove() | |||
95 | run(Store::remove(*mail)); | 96 | run(Store::remove(*mail)); |
96 | } | 97 | } |
97 | 98 | ||
99 | void MailController::moveToFolder() | ||
100 | { | ||
101 | auto mail = getMail(); | ||
102 | auto targetFolder = getTargetFolder(); | ||
103 | mail->setFolder(*targetFolder); | ||
104 | SinkLog() << "Moving to folder " << mail->identifier() << targetFolder->identifier(); | ||
105 | run(Store::modify(*mail)); | ||
106 | } | ||
107 | |||
diff --git a/framework/domain/mailcontroller.h b/framework/domain/mailcontroller.h index b92fd566..b4f08aac 100644 --- a/framework/domain/mailcontroller.h +++ b/framework/domain/mailcontroller.h | |||
@@ -26,12 +26,14 @@ class MailController : public Kube::Controller | |||
26 | { | 26 | { |
27 | Q_OBJECT | 27 | Q_OBJECT |
28 | KUBE_CONTROLLER_PROPERTY(Sink::ApplicationDomain::Mail::Ptr, Mail, mail) | 28 | KUBE_CONTROLLER_PROPERTY(Sink::ApplicationDomain::Mail::Ptr, Mail, mail) |
29 | KUBE_CONTROLLER_PROPERTY(Sink::ApplicationDomain::Folder::Ptr, TargetFolder, targetFolder) | ||
29 | KUBE_CONTROLLER_ACTION(markAsRead) | 30 | KUBE_CONTROLLER_ACTION(markAsRead) |
30 | KUBE_CONTROLLER_ACTION(markAsUnread) | 31 | KUBE_CONTROLLER_ACTION(markAsUnread) |
31 | KUBE_CONTROLLER_ACTION(markAsImportant) | 32 | KUBE_CONTROLLER_ACTION(markAsImportant) |
32 | KUBE_CONTROLLER_ACTION(moveToTrash) | 33 | KUBE_CONTROLLER_ACTION(moveToTrash) |
33 | KUBE_CONTROLLER_ACTION(restoreFromTrash) | 34 | KUBE_CONTROLLER_ACTION(restoreFromTrash) |
34 | KUBE_CONTROLLER_ACTION(remove) | 35 | KUBE_CONTROLLER_ACTION(remove) |
36 | KUBE_CONTROLLER_ACTION(moveToFolder) | ||
35 | 37 | ||
36 | public: | 38 | public: |
37 | explicit MailController(); | 39 | explicit MailController(); |