Messagelib
7 #include "opensavedfilefolderwidget.h"
9 #include <KIO/JobUiDelegateFactory>
10 #include <KIO/OpenFileManagerWindowJob>
11 #include <KIO/OpenUrlJob>
12 #include <KLocalizedString>
13 #include <KMessageBox>
20 using namespace std::chrono_literals;
21 using namespace MessageViewer;
23 OpenSavedFileFolderWidget::OpenSavedFileFolderWidget(
QWidget *parent)
26 , mShowFolderAction(new
QAction(
i18nc(
"@action",
"Open folder where attachment was saved"), this))
27 , mOpenFileAction(new
QAction(
i18nc(
"@action",
"Open File"), this))
29 mTimer->setSingleShot(
true);
30 mTimer->setInterval(5s);
31 connect(mTimer, &
QTimer::timeout,
this, &OpenSavedFileFolderWidget::slotTimeOut);
33 setCloseButtonVisible(
true);
34 setMessageType(Positive);
36 auto action = this->findChild<QAction *>();
38 connect(action, &
QAction::triggered,
this, &OpenSavedFileFolderWidget::slotExplicitlyClosed);
41 connect(mShowFolderAction, &
QAction::triggered,
this, &OpenSavedFileFolderWidget::slotOpenSavedFileFolder);
42 addAction(mShowFolderAction);
43 connect(mOpenFileAction, &
QAction::triggered,
this, &OpenSavedFileFolderWidget::slotOpenFile);
44 addAction(mOpenFileAction);
47 OpenSavedFileFolderWidget::~OpenSavedFileFolderWidget() =
default;
49 void OpenSavedFileFolderWidget::slotExplicitlyClosed()
51 if (mTimer->isActive()) {
56 void OpenSavedFileFolderWidget::setUrls(
const QList<QUrl> &urls, FileType fileType)
60 case FileType::Attachment:
61 mShowFolderAction->setText(
i18np(
"Open folder where attachment was saved",
"Open folder where attachments were saved", mUrls.count()));
64 mShowFolderAction->setText(
i18n(
"Open folder where PDF file was saved"));
69 void OpenSavedFileFolderWidget::slotOpenFile()
71 for (
const auto &url : std::as_const(mUrls)) {
74 job->setDeleteTemporaryFile(
true);
76 if (job->
error() == KIO::ERR_USER_CANCELED) {
77 KMessageBox::error(this, i18n(
"KMail was unable to open the attachment."), job->errorString());
84 void OpenSavedFileFolderWidget::slotOpenSavedFileFolder()
86 if (!mUrls.isEmpty()) {
92 void OpenSavedFileFolderWidget::slotHideWarning()
94 if (mTimer->isActive()) {
100 void OpenSavedFileFolderWidget::slotShowWarning()
102 if (mTimer->isActive()) {
109 void OpenSavedFileFolderWidget::slotTimeOut()
virtual Q_SCRIPTABLE void start()=0
OpenFileManagerWindowJob * highlightInFileManager(const QList< QUrl > &urls, const QByteArray &asn=QByteArray())
QString i18n(const char *text, const TYPE &arg...)
QString i18np(const char *singular, const char *plural, const TYPE &arg...)
void triggered(bool checked)
QString i18nc(const char *context, const char *text, const TYPE &arg...)
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Wed Mar 22 2023 04:07:15 by
doxygen 1.8.17 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.