diff --git a/src/kmmainwidget.cpp b/src/kmmainwidget.cpp --- a/src/kmmainwidget.cpp +++ b/src/kmmainwidget.cpp @@ -3938,10 +3938,7 @@ const bool isInTrashFolder = (mCurrentFolderSettings && CommonKernel->folderIsTrash(mCurrentCollection)); QAction *moveToTrash = akonadiStandardAction(Akonadi::StandardMailActionManager::MoveToTrash); - moveToTrash->setText(isInTrashFolder ? i18nc("@action Hard delete, bypassing trash", "&Delete") : i18n("&Move to Trash")); - moveToTrash->setIcon(isInTrashFolder ? QIcon::fromTheme(QStringLiteral("edit-delete")) : QIcon::fromTheme(QStringLiteral("user-trash"))); - //Use same text as in Text property. Change it in kf5 - moveToTrash->setToolTip(isInTrashFolder ? i18nc("@action Hard delete, bypassing trash", "Delete") : i18n("Move to Trash")); + KMail::Util::setActionTrashOrDelete(moveToTrash, isInTrashFolder); mTrashThreadAction->setIcon(isInTrashFolder ? QIcon::fromTheme(QStringLiteral("edit-delete")) : QIcon::fromTheme(QStringLiteral("user-trash"))); mTrashThreadAction->setText(isInTrashFolder ? i18n("Delete T&hread") : i18n("M&ove Thread to Trash")); diff --git a/src/kmreadermainwin.cpp b/src/kmreadermainwin.cpp --- a/src/kmreadermainwin.cpp +++ b/src/kmreadermainwin.cpp @@ -160,6 +160,9 @@ mReaderWin->viewer()->headerStylePlugin()->headerStyle()->setReadOnlyMessage(!canChange); } + const bool isInTrashFolder = mParentCollection.isValid() ? CommonKernel->folderIsTrash(mParentCollection) : false; + QAction *moveToTrash = actionCollection()->action(QStringLiteral("move_to_trash")); + KMail::Util::setActionTrashOrDelete(moveToTrash, isInTrashFolder); menuBar()->show(); toolBar(QStringLiteral("mainToolBar"))->show(); } diff --git a/src/util.h b/src/util.h --- a/src/util.h +++ b/src/util.h @@ -78,6 +78,13 @@ void lastEncryptAndSignState(bool &lastEncrypt, bool &lastSign, const KMime::Message::Ptr &msg); void addQActionHelpText(QAction *action, const QString &text); + +/** + * Set an action's text, icon etc. as appropriate for whether a message is + * in the trash folder (delete permanently) or any other (move to trash). + */ +void setActionTrashOrDelete(QAction *action, bool isInTrashFolder); + } } diff --git a/src/util.cpp b/src/util.cpp --- a/src/util.cpp +++ b/src/util.cpp @@ -44,6 +44,7 @@ #include #include +#include #include "kmail_debug.h" #include @@ -176,3 +177,13 @@ action->setWhatsThis(text); } } + +void Util::setActionTrashOrDelete(QAction *action, bool isInTrashFolder) +{ + if (action) { + action->setText(isInTrashFolder ? i18nc("@action Hard delete, bypassing trash", "&Delete") : i18n("&Move to Trash")); + action->setIcon(isInTrashFolder ? QIcon::fromTheme(QStringLiteral("edit-delete")) : QIcon::fromTheme(QStringLiteral("user-trash"))); + //Use same text as in Text property. Change it in kf5 + action->setToolTip(isInTrashFolder ? i18nc("@action Hard delete, bypassing trash", "Delete") : i18n("Move to Trash")); + } +}