File indexing completed on 2024-12-01 03:41:21
0001 /* 0002 This file is part of the KDE libraries 0003 SPDX-FileCopyrightText: 2020 Ahmad Samir <a.samirh78@gmail.com> 0004 0005 SPDX-License-Identifier: LGPL-2.0-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0006 */ 0007 0008 #ifndef WIDGETSASKUSERACTIONHANDLER_H 0009 #define WIDGETSASKUSERACTIONHANDLER_H 0010 0011 #include "kiowidgets_export.h" 0012 #include <kio/askuseractioninterface.h> 0013 #include <kio/global.h> 0014 #include <kio/jobuidelegateextension.h> 0015 #include <kio/renamedialog.h> 0016 #include <kio/skipdialog.h> 0017 0018 namespace KIO 0019 { 0020 // TODO KF6: Handle this the same way we end up handling WidgetsUntrustedProgramHandler. 0021 0022 /** 0023 * @class KIO::WidgetsAskUserActionHandler widgetsaskuseractionhandler.h <KIO/WidgetsAskUserActionHandler> 0024 * 0025 * This implements KIO::AskUserActionInterface. 0026 * @see KIO::AskUserActionInterface() 0027 * 0028 * @sa KIO::JobUiDelegateExtension() 0029 * 0030 * @since 5.78 0031 * @note This header wasn't installed until 5.98 0032 */ 0033 0034 class WidgetsAskUserActionHandlerPrivate; 0035 0036 class KIOWIDGETS_EXPORT WidgetsAskUserActionHandler : public AskUserActionInterface 0037 { 0038 Q_OBJECT 0039 public: 0040 explicit WidgetsAskUserActionHandler(QObject *parent = nullptr); 0041 0042 ~WidgetsAskUserActionHandler() override; 0043 0044 /** 0045 * @copydoc KIO::AskUserActionInterface::askUserRename() 0046 */ 0047 void askUserRename(KJob *job, 0048 const QString &title, 0049 const QUrl &src, 0050 const QUrl &dest, 0051 KIO::RenameDialog_Options options, 0052 KIO::filesize_t sizeSrc = KIO::filesize_t(-1), 0053 KIO::filesize_t sizeDest = KIO::filesize_t(-1), 0054 const QDateTime &ctimeSrc = {}, 0055 const QDateTime &ctimeDest = {}, 0056 const QDateTime &mtimeSrc = {}, 0057 const QDateTime &mtimeDest = {}) override; 0058 0059 /** 0060 * @copydoc KIO::AskUserActionInterface::askUserSkip() 0061 */ 0062 void askUserSkip(KJob *job, KIO::SkipDialog_Options options, const QString &error_text) override; 0063 0064 /** 0065 * @copydoc KIO::AskUserActionInterface::askUserDelete() 0066 */ 0067 void askUserDelete(const QList<QUrl> &urls, DeletionType deletionType, ConfirmationType confirmationType, QWidget *parent = nullptr) override; 0068 0069 /** 0070 * @copydoc KIO::AskUserActionInterface::requestUserMessageBox() 0071 */ 0072 void requestUserMessageBox(MessageDialogType type, 0073 const QString &text, 0074 const QString &title, 0075 const QString &primaryActionText, 0076 const QString &secondaryActionText, 0077 const QString &primaryActionIconName = {}, 0078 const QString &secondaryActionIconName = {}, 0079 const QString &dontAskAgainName = {}, 0080 const QString &details = {}, 0081 QWidget *parent = nullptr) override; 0082 0083 void askIgnoreSslErrors(const QVariantMap &sslErrorData, QWidget *parent) override; 0084 0085 void setWindow(QWidget *window); 0086 0087 private: 0088 void showSslDetails(const QVariantMap &sslErrorData, QWidget *parentWidget); 0089 std::unique_ptr<WidgetsAskUserActionHandlerPrivate> d; 0090 }; 0091 0092 } // namespace KIO 0093 0094 #endif // WIDGETSASKUSERACTIONHANDLER_H