diff --git a/src/kmreadermainwin.cpp b/src/kmreadermainwin.cpp index 486f86dcdd634848755ca2b9b330e54964fc9a0d..ee287a5c0b60f82cf1c268f236c22c3b90855541 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 28d11814179193561c7a207302e0daea939abfbe..aeeb2e6e042da32b72a79dd00f22b19989722254 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 ac4a4b01680d5d468d331d4007a13b00e82fb902..b8c23f4f70d7e61dc038cc9a1fe8e208e3567bd7 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 67c4350e582cae40793dd302528185f95adb6ccf..d79318dac8a244809467bc2f205fc85e889ed44e 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.