From 5ac5f26a109cbf985b35d11fe6392d5fcb3a5050 Mon Sep 17 00:00:00 2001 From: Michael Bohlender Date: Wed, 16 Dec 2015 15:26:31 +0100 Subject: delete, important, unread actions for maillist controller and action buttons in toolbar --- .../kmail-quick/package/contents/ui/main.qml | 39 ++++++++++++++++++---- framework/mail/maillistcontroller.cpp | 29 ++++++++++++++++ framework/mail/maillistcontroller.h | 13 ++++++++ 3 files changed, 75 insertions(+), 6 deletions(-) diff --git a/applications/kmail-quick/package/contents/ui/main.qml b/applications/kmail-quick/package/contents/ui/main.qml index 63b66c6d..88d2edde 100644 --- a/applications/kmail-quick/package/contents/ui/main.qml +++ b/applications/kmail-quick/package/contents/ui/main.qml @@ -51,7 +51,6 @@ ApplicationWindow { Row { anchors.fill: parent - PlasmaComponents.ToolButton { height: parent.height @@ -60,14 +59,42 @@ ApplicationWindow { text: "Compose" } - } - PlasmaComponents.ToolButton { + PlasmaComponents.ToolButton { + + height: parent.height + + iconName: "mail-mark-unread" + text: "Mark Unread" + + onClicked: { + mailList.markMailUnread(true) + } + } + + PlasmaComponents.ToolButton { + + height: parent.height + + iconName: "mail-mark-important" + text: "Mark Important" + + onClicked: { + mailList.markMailImportant(true) + } + } + + PlasmaComponents.ToolButton { - anchors.right: parent.right + height: parent.height - //FIXME: proper item name - iconName: "applications-system" + iconName: "edit-delete" + text: "Delete Mail" + + onClicked: { + mailList.deleteMail() + } + } } } diff --git a/framework/mail/maillistcontroller.cpp b/framework/mail/maillistcontroller.cpp index 859aed91..07baeb01 100644 --- a/framework/mail/maillistcontroller.cpp +++ b/framework/mail/maillistcontroller.cpp @@ -58,3 +58,32 @@ void MailListController::loadImportantMail() query.propertyFilter.insert("important", true); m_model->runQuery(query); } + +QString MailListController::selectedMail() const +{ + return m_selectedMail; +} + +void MailListController::setSelectedMail(const QString& id) +{ + if (m_selectedMail != id) { + m_selectedMail = id; + emit selectedMailChanged(); + } +} + +void MailListController::markMailImportant(bool important) +{ + qDebug() << "user action: mark mail important "; +} + +void MailListController::markMailUnread(bool unread) +{ + qDebug() << "user action: mark mail unread "; +} + +void MailListController::deleteMail() +{ + qDebug() << "user action: delete mail"; +} + diff --git a/framework/mail/maillistcontroller.h b/framework/mail/maillistcontroller.h index ebdc990b..3c969403 100644 --- a/framework/mail/maillistcontroller.h +++ b/framework/mail/maillistcontroller.h @@ -11,18 +11,31 @@ class MailListController : public QObject { Q_OBJECT Q_PROPERTY (MailListModel *model READ model CONSTANT) + Q_PROPERTY (QString selectedMail READ selectedMail WRITE setSelectedMail NOTIFY selectedMailChanged) public: explicit MailListController(QObject *parent = Q_NULLPTR); MailListModel *model() const; + QString selectedMail() const; + void setSelectedMail(const QString &id); + +signals: + void selectedMailChanged(); + public slots: void loadAllMail(); void loadUnreadMail(); void loadImportantMail(); void loadMailFolder(const QString &folderId); + void markMailImportant(bool important); + void markMailUnread(bool unread); + void deleteMail(); + private: QScopedPointer m_model; + + QString m_selectedMail; }; -- cgit v1.2.3