1/*
2 This file is part of the KDE libraries
3 SPDX-FileCopyrightText: 2020 Ahmad Samir <a.samirh78@gmail.com>
4
5 SPDX-License-Identifier: LGPL-2.0-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
6*/
7
8#ifndef WIDGETSASKUSERACTIONHANDLER_H
9#define WIDGETSASKUSERACTIONHANDLER_H
10
11#include "kiowidgets_export.h"
12#include <kio/askuseractioninterface.h>
13#include <kio/global.h>
14#include <kio/jobuidelegateextension.h>
15#include <kio/renamedialog.h>
16#include <kio/skipdialog.h>
17
18namespace KIO
19{
20// TODO KF6: Handle this the same way we end up handling WidgetsUntrustedProgramHandler.
21
22/*!
23 * \class KIO::WidgetsAskUserActionHandler
24 * \inheaderfile KIO/WidgetsAskUserActionHandler
25 * \inmodule KIOWidgets
26 *
27 * This implements KIO::AskUserActionInterface.
28 *
29 * \sa KIO::AskUserActionInterface
30 * \sa KIO::JobUiDelegateExtension
31 *
32 * \since 5.78
33 */
34class WidgetsAskUserActionHandlerPrivate;
35
36class KIOWIDGETS_EXPORT WidgetsAskUserActionHandler : public AskUserActionInterface
37{
38 Q_OBJECT
39public:
40 /*!
41 *
42 */
43 explicit WidgetsAskUserActionHandler(QObject *parent = nullptr);
44
45 ~WidgetsAskUserActionHandler() override;
46
47 void askUserRename(KJob *job,
48 const QString &title,
49 const QUrl &src,
50 const QUrl &dest,
51 KIO::RenameDialog_Options options,
52 KIO::filesize_t sizeSrc = KIO::filesize_t(-1),
53 KIO::filesize_t sizeDest = KIO::filesize_t(-1),
54 const QDateTime &ctimeSrc = {},
55 const QDateTime &ctimeDest = {},
56 const QDateTime &mtimeSrc = {},
57 const QDateTime &mtimeDest = {}) override;
58
59 void askUserSkip(KJob *job, KIO::SkipDialog_Options options, const QString &error_text) override;
60
61 void askUserDelete(const QList<QUrl> &urls, DeletionType deletionType, ConfirmationType confirmationType, QWidget *parent = nullptr) override;
62
63 void requestUserMessageBox(MessageDialogType type,
64 const QString &text,
65 const QString &title,
66 const QString &primaryActionText,
67 const QString &secondaryActionText,
68 const QString &primaryActionIconName = {},
69 const QString &secondaryActionIconName = {},
70 const QString &dontAskAgainName = {},
71 const QString &details = {},
72 QWidget *parent = nullptr) override;
73
74 void askIgnoreSslErrors(const QVariantMap &sslErrorData, QWidget *parent) override;
75
76 /*!
77 *
78 */
79 void setWindow(QWidget *window);
80
81private:
82 void showSslDetails(const QVariantMap &sslErrorData, QWidget *parentWidget);
83 std::unique_ptr<WidgetsAskUserActionHandlerPrivate> d;
84};
85
86} // namespace KIO
87
88#endif // WIDGETSASKUSERACTIONHANDLER_H
89

source code of kio/src/widgets/widgetsaskuseractionhandler.h