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. --- components/mail/contents/ui/main.qml | 25 ++++++++++++++++++------- framework/domain/mailcontroller.cpp | 30 ++++++++++++++++++++++++------ framework/domain/mailcontroller.h | 2 ++ 3 files changed, 44 insertions(+), 13 deletions(-) diff --git a/components/mail/contents/ui/main.qml b/components/mail/contents/ui/main.qml index bf3b4954..5fceaf30 100644 --- a/components/mail/contents/ui/main.qml +++ b/components/mail/contents/ui/main.qml @@ -202,9 +202,9 @@ Controls2.ApplicationWindow { ToolButton { iconName: "mail-mark-unread" - text: "Mark As Read" + text: tr("Mark As Read") enabled: mailController.markAsRead.enabled - tooltip: "mark mail as read" + tooltip: tr("mark mail as read") onClicked: { mailController.markAsRead.execute() } @@ -212,22 +212,33 @@ Controls2.ApplicationWindow { ToolButton { iconName: "mail-mark-important" - text: "Mark Important" - enabled: false - tooltip: "mark mail as important" + text: tr("Mark Important") + enabled: mailController.markAsImportant.enabled + tooltip: tr("mark mail as important") onClicked: { + mailController.markAsImportant.execute() } } ToolButton { iconName: "edit-delete" - text: "Delete Mail" + text: tr("Delete Mail") enabled: mailController.moveToTrashAction.enabled - tooltip: "delete email" + tooltip: tr("delete email") onClicked: { mailController.moveToTrashAction.execute() } } + + ToolButton { + iconName: "edit-delete" + text: tr("Restore Mail") + enabled: mailController.restoreFromTrashAction.enabled + tooltip: tr("restore email") + onClicked: { + mailController.restoreFromTrashAction.execute() + } + } } } //END MailList section 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