From 43f98283e3893f78b6ebbdec16fcad823bad1c75 Mon Sep 17 00:00:00 2001 From: Laurent Montel Date: Wed, 16 Sep 2020 13:52:40 +0200 Subject: [PATCH] Continue to fix 424184 CCBUG: 424184 --- src/kmreadermainwin.cpp | 15 ++++++++++++++- src/kmreadermainwin.h | 1 + src/messageactions.cpp | 5 +++++ src/messageactions.h | 2 ++ 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/kmreadermainwin.cpp b/src/kmreadermainwin.cpp index 486f86dcd..ee287a5c0 100644 --- a/src/kmreadermainwin.cpp +++ b/src/kmreadermainwin.cpp @@ -438,11 +438,24 @@ void KMReaderMainWin::initializeAkonadiStandardAction() }; for (Akonadi::StandardMailActionManager::Type mailAction : mailActions) { - mAkonadiStandardActionManager->createAction(mailAction); + QAction *act = mAkonadiStandardActionManager->createAction(mailAction); + mAkonadiStandardActionManager->interceptAction(mailAction); + connect(act, &QAction::triggered, this, &KMReaderMainWin::slotMarkMailAs); } } +void KMReaderMainWin::slotMarkMailAs() +{ + const QAction *action = qobject_cast(sender()); + Q_ASSERT(action); + + + const QByteArray typeStr = action->data().toByteArray(); + + mAkonadiStandardActionManager->markItemsAs(typeStr, {mMsgActions->currentItem()}, false); +} + void KMReaderMainWin::setupAccel() { if (!kmkernel->xmlGuiInstanceName().isEmpty()) { diff --git a/src/kmreadermainwin.h b/src/kmreadermainwin.h index 28d118141..aeeb2e6e0 100644 --- a/src/kmreadermainwin.h +++ b/src/kmreadermainwin.h @@ -106,6 +106,7 @@ private: void updateButtons(); void slotToggleMenubar(bool dontShowWarning); void initializeAkonadiStandardAction(); + void slotMarkMailAs(); QVector mListMessage; int mCurrentMessageIndex = 0; diff --git a/src/messageactions.cpp b/src/messageactions.cpp index ac4a4b016..b8c23f4f7 100644 --- a/src/messageactions.cpp +++ b/src/messageactions.cpp @@ -775,6 +775,11 @@ void MessageActions::slotExportToPdf() } } +Akonadi::Item MessageActions::currentItem() const +{ + return mCurrentItem; +} + QAction *MessageActions::exportToPdfAction() const { return mExportToPdfAction; diff --git a/src/messageactions.h b/src/messageactions.h index 67c4350e5..d79318dac 100644 --- a/src/messageactions.h +++ b/src/messageactions.h @@ -92,6 +92,8 @@ public: void setExportToPdfAction(QAction *exportToPdfAction); void fillAkonadiStandardAction(Akonadi::StandardMailActionManager *akonadiStandardActionManager); + Q_REQUIRED_RESULT Akonadi::Item currentItem() const; + Q_SIGNALS: // This signal is emitted when a reply is triggered and the // action has finished. -- GitLab