From d9f64e2c37e9d5d289b2108bed8e3efacc33007d Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 13 Apr 2017 12:29:04 +0200 Subject: Only show relevant toolbuttons in the maillist view --- framework/qml/Icons.qml | 1 + framework/qml/MailListView.qml | 27 ++++++++++++++++++++------- framework/src/domain/mailcontroller.cpp | 15 +++++++++++++++ framework/src/domain/mailcontroller.h | 1 + 4 files changed, 37 insertions(+), 7 deletions(-) diff --git a/framework/qml/Icons.qml b/framework/qml/Icons.qml index 252f9f43..0a633463 100644 --- a/framework/qml/Icons.qml +++ b/framework/qml/Icons.qml @@ -33,6 +33,7 @@ Item { property string success_inverted: "dialog-ok-inverted" property string markAsRead: "mail-mark-unread-new" + property string markAsUnread: "mail-mark-unread-new" property string markImportant: "mail-mark-important" property string undo: "edit-undo" property string moveToTrash: "edit-delete" diff --git a/framework/qml/MailListView.qml b/framework/qml/MailListView.qml index 28386442..1e0123cc 100644 --- a/framework/qml/MailListView.qml +++ b/framework/qml/MailListView.qml @@ -48,28 +48,40 @@ Item { Controls.ToolButton { iconName: Kube.Icons.markAsRead text: qsTr("Mark As Read") + tooltip: text enabled: mailController.markAsReadAction.enabled - tooltip: qsTr("mark mail as read") + visible: enabled onClicked: { mailController.markAsReadAction.execute() } } + Controls.ToolButton { + iconName: Kube.Icons.markAsUnread + text: qsTr("Mark As Unread") + tooltip: text + enabled: mailController.markAsUnreadAction.enabled + visible: enabled + onClicked: { + mailController.markAsUnreadAction.execute() + } + } + Controls.ToolButton { iconName: Kube.Icons.markImportant - text: qsTr("Mark Important") - enabled: mailController.markAsImportantAction.enabled - tooltip: qsTr("mark mail as important") + text: qsTr("Toggle Important") + tooltip: text + enabled: mailController.toggleImportantAction.enabled onClicked: { - mailController.markAsImportantAction.execute() + mailController.toggleImportantAction.execute() } } Controls.ToolButton { iconName: Kube.Icons.moveToTrash text: qsTr("Delete Mail") + tooltip: text enabled: mailController.moveToTrashAction.enabled - tooltip: qsTr("delete email") onClicked: { mailController.moveToTrashAction.execute() } @@ -78,8 +90,9 @@ Item { Controls.ToolButton { iconName: Kube.Icons.undo text: qsTr("Restore Mail") + tooltip: text enabled: mailController.restoreFromTrashAction.enabled - tooltip: qsTr("restore email") + visible: enabled onClicked: { mailController.restoreFromTrashAction.execute() } diff --git a/framework/src/domain/mailcontroller.cpp b/framework/src/domain/mailcontroller.cpp index b912567a..fe02afc3 100644 --- a/framework/src/domain/mailcontroller.cpp +++ b/framework/src/domain/mailcontroller.cpp @@ -32,12 +32,14 @@ MailController::MailController() action_markAsRead{new Kube::ControllerAction{this, &MailController::markAsRead}}, action_markAsUnread{new Kube::ControllerAction{this, &MailController::markAsUnread}}, action_markAsImportant{new Kube::ControllerAction{this, &MailController::markAsImportant}}, + action_toggleImportant{new Kube::ControllerAction{this, &MailController::toggleImportant}}, action_moveToTrash{new Kube::ControllerAction{this, &MailController::moveToTrash}}, action_restoreFromTrash{new Kube::ControllerAction{this, &MailController::restoreFromTrash}}, action_remove{new Kube::ControllerAction{this, &MailController::remove}}, action_moveToFolder{new Kube::ControllerAction{this, &MailController::moveToFolder}} { QObject::connect(this, &MailController::mailChanged, &MailController::updateActions); + QObject::connect(this, &MailController::threadLeaderChanged, &MailController::updateActions); updateActions(); } @@ -63,6 +65,11 @@ void MailController::updateActions() action_restoreFromTrash->setEnabled(mail->getTrash()); action_markAsRead->setEnabled(mail->getUnread()); action_markAsUnread->setEnabled(!mail->getUnread()); + } else { + action_moveToTrash->setEnabled(false); + action_restoreFromTrash->setEnabled(false); + action_markAsRead->setEnabled(false); + action_markAsUnread->setEnabled(false); } } @@ -90,6 +97,14 @@ void MailController::markAsImportant() }); } +void MailController::toggleImportant() +{ + runModification([] (ApplicationDomain::Mail &mail) { + mail.setImportant(!mail.getImportant()); + SinkLog() << "Toggle important " << mail.identifier() << mail.getImportant(); + }); +} + void MailController::moveToTrash() { runModification([] (ApplicationDomain::Mail &mail) { diff --git a/framework/src/domain/mailcontroller.h b/framework/src/domain/mailcontroller.h index ae0f32d5..f6613558 100644 --- a/framework/src/domain/mailcontroller.h +++ b/framework/src/domain/mailcontroller.h @@ -31,6 +31,7 @@ class MailController : public Kube::Controller KUBE_CONTROLLER_ACTION(markAsRead) KUBE_CONTROLLER_ACTION(markAsUnread) KUBE_CONTROLLER_ACTION(markAsImportant) + KUBE_CONTROLLER_ACTION(toggleImportant) KUBE_CONTROLLER_ACTION(moveToTrash) KUBE_CONTROLLER_ACTION(restoreFromTrash) KUBE_CONTROLLER_ACTION(remove) -- cgit v1.2.3