From ab78738fad2785fbe26c4b4ee16f09a5df8d48dd Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 2 Jan 2017 11:43:48 +0100 Subject: Mark as important, restore from trash. --- framework/domain/mailcontroller.cpp | 30 ++++++++++++++++++++++++------ framework/domain/mailcontroller.h | 2 ++ 2 files changed, 26 insertions(+), 6 deletions(-) (limited to 'framework') diff --git a/framework/domain/mailcontroller.cpp b/framework/domain/mailcontroller.cpp index 3d29ba22..0163d41e 100644 --- a/framework/domain/mailcontroller.cpp +++ b/framework/domain/mailcontroller.cpp @@ -23,14 +23,21 @@ SINK_DEBUG_AREA("mailcontroller"); +using namespace Sink; +using namespace Sink::ApplicationDomain; + MailController::MailController() : Kube::Controller(), action_markAsRead{new Kube::ControllerAction}, + action_markAsImportant{new Kube::ControllerAction}, action_moveToTrash{new Kube::ControllerAction}, + action_restoreFromTrash{new Kube::ControllerAction}, action_remove{new Kube::ControllerAction} { QObject::connect(markAsReadAction(), &Kube::ControllerAction::triggered, this, &MailController::markAsRead); + QObject::connect(markAsImportantAction(), &Kube::ControllerAction::triggered, this, &MailController::markAsImportant); QObject::connect(moveToTrashAction(), &Kube::ControllerAction::triggered, this, &MailController::moveToTrash); + QObject::connect(restoreFromTrashAction(), &Kube::ControllerAction::triggered, this, &MailController::restoreFromTrash); QObject::connect(removeAction(), &Kube::ControllerAction::triggered, this, &MailController::remove); QObject::connect(this, &MailController::mailChanged, &MailController::updateActions); @@ -41,33 +48,44 @@ void MailController::updateActions() { if (auto mail = getMail()) { action_moveToTrash->setEnabled(!mail->getTrash()); + action_restoreFromTrash->setEnabled(mail->getTrash()); } } void MailController::markAsRead() { - using namespace Sink; - using namespace Sink::ApplicationDomain; auto mail = getMail(); mail->setUnread(false); SinkLog() << "Mark as read " << mail->identifier(); run(Store::modify(*mail)); } +void MailController::markAsImportant() +{ + auto mail = getMail(); + mail->setImportant(true); + SinkLog() << "Mark as important " << mail->identifier(); + run(Store::modify(*mail)); +} + void MailController::moveToTrash() { - using namespace Sink; - using namespace Sink::ApplicationDomain; auto mail = getMail(); mail->setTrash(true); SinkLog() << "Move to trash " << mail->identifier(); run(Store::modify(*mail)); } +void MailController::restoreFromTrash() +{ + auto mail = getMail(); + mail->setTrash(false); + SinkLog() << "Move to trash " << mail->identifier(); + run(Store::modify(*mail)); +} + void MailController::remove() { - using namespace Sink; - using namespace Sink::ApplicationDomain; auto mail = getMail(); mail->setTrash(true); SinkLog() << "Remove " << mail->identifier(); diff --git a/framework/domain/mailcontroller.h b/framework/domain/mailcontroller.h index c20cf595..324f6c62 100644 --- a/framework/domain/mailcontroller.h +++ b/framework/domain/mailcontroller.h @@ -27,7 +27,9 @@ class MailController : public Kube::Controller Q_OBJECT KUBE_CONTROLLER_PROPERTY(Sink::ApplicationDomain::Mail::Ptr, Mail, mail) KUBE_CONTROLLER_ACTION(markAsRead) + KUBE_CONTROLLER_ACTION(markAsImportant) KUBE_CONTROLLER_ACTION(moveToTrash) + KUBE_CONTROLLER_ACTION(restoreFromTrash) KUBE_CONTROLLER_ACTION(remove) public: -- cgit v1.2.3