diff --git a/src/kmmainwidget.h b/src/kmmainwidget.h --- a/src/kmmainwidget.h +++ b/src/kmmainwidget.h @@ -227,9 +227,6 @@ KActionMenu *mailingListActionMenu() const; - void slotExportToPdf(); - - // Moving messages around /** * This will ask for a destination folder and move the currently selected @@ -597,7 +594,6 @@ QAction *mShowFolderShortcutDialogAction = nullptr; QAction *mArchiveFolderAction = nullptr; QAction *mMessageNewList = nullptr; - QAction *mExportToPdfAction = nullptr; KToggleAction *mPreferHtmlLoadExtAction = nullptr; QTimer *menutimer = nullptr; diff --git a/src/kmmainwidget.cpp b/src/kmmainwidget.cpp --- a/src/kmmainwidget.cpp +++ b/src/kmmainwidget.cpp @@ -3592,11 +3592,6 @@ mRestartAccountSettings = new QAction(QIcon::fromTheme(QStringLiteral("view-refresh")), i18n("Restart Account"), this); actionCollection()->addAction(QStringLiteral("resource_restart"), mRestartAccountSettings); connect(mRestartAccountSettings, &QAction::triggered, this, &KMMainWidget::slotRestartAccount); - - - mExportToPdfAction = new QAction(QIcon::fromTheme(QStringLiteral("application-pdf")), i18n("Export to Pdf..."), this); - actionCollection()->addAction(QStringLiteral("file_export_pdf"), mExportToPdfAction); - connect(mExportToPdfAction, &QAction::triggered, this, &KMMainWidget::slotExportToPdf); } void KMMainWidget::slotAddFavoriteFolder() @@ -4368,16 +4363,6 @@ return mMsgActions->mailingListActionMenu(); } -void KMMainWidget::slotExportToPdf() -{ - if (mMsgView) { - const QString fileName = QFileDialog::getSaveFileName(this, i18n("Export to Pdf")); - if (!fileName.isEmpty()) { - mMsgView->viewer()->exportToPdf(fileName); - } - } -} - QAction *KMMainWidget::sendQueuedAction() const { return mSendQueued; diff --git a/src/kmreadermainwin.cpp b/src/kmreadermainwin.cpp --- a/src/kmreadermainwin.cpp +++ b/src/kmreadermainwin.cpp @@ -813,3 +813,4 @@ createGUI(QStringLiteral("kmreadermainwin.rc")); applyMainWindowSettings(KConfigGroup(KMKernel::self()->config(), "ReaderWindow")); } + diff --git a/src/kmreadermainwin.rc b/src/kmreadermainwin.rc --- a/src/kmreadermainwin.rc +++ b/src/kmreadermainwin.rc @@ -1,9 +1,10 @@ - + &File + diff --git a/src/messageactions.h b/src/messageactions.h --- a/src/messageactions.h +++ b/src/messageactions.h @@ -141,6 +141,8 @@ void slotResendMessage(); void slotUseTemplate(); + void slotExportToPdf(); + private: QList mMailListActionList; Akonadi::Item mCurrentItem; @@ -171,6 +173,7 @@ QAction *mSendAgainAction = nullptr; QAction *mNewMessageFromTemplateAction = nullptr; KIO::KUriFilterSearchProviderActions *mWebShortcutMenuManager = nullptr; + QAction *mExportToPdfAction = nullptr; }; } diff --git a/src/messageactions.cpp b/src/messageactions.cpp --- a/src/messageactions.cpp +++ b/src/messageactions.cpp @@ -54,6 +54,7 @@ #include #include #include +#include #include #include @@ -203,6 +204,10 @@ connect(mNewMessageFromTemplateAction, &QAction::triggered, this, &MessageActions::slotUseTemplate); ac->setDefaultShortcut(mNewMessageFromTemplateAction, QKeySequence(Qt::SHIFT + Qt::Key_N)); + mExportToPdfAction = new QAction(QIcon::fromTheme(QStringLiteral("application-pdf")), i18n("Export to PDF..."), this); + ac->addAction(QStringLiteral("file_export_pdf"), mExportToPdfAction); + connect(mExportToPdfAction, &QAction::triggered, this, &MessageActions::slotExportToPdf); + updateActions(); } @@ -760,3 +765,18 @@ } delete dlg; } + +void MessageActions::slotExportToPdf() +{ + if (!mCurrentItem.isValid()) { + return; + } + + auto email = mCurrentItem.payload(); + const QString fileName = QFileDialog::getSaveFileName(mParent, i18n("Export to PDF"), + QDir::homePath() + QLatin1Char('/') + email->subject()->asUnicodeString() + QStringLiteral(".pdf"), + i18n("PDF document (*.pdf")); + if (!fileName.isEmpty()) { + mMessageView->viewer()->exportToPdf(fileName); + } +}