1/*
2 This file is part of the KDE libraries
3 SPDX-FileCopyrightText: 2012 Dawit Alemayehu <adawit@kde.org>
4
5 SPDX-License-Identifier: LGPL-2.0-only
6*/
7
8#ifndef USERNOTIFICATIONHANDLER_P_H
9#define USERNOTIFICATIONHANDLER_P_H
10
11#include <QCache>
12#include <QHash>
13#include <QObject>
14#include <QPointer>
15#include <QVariant>
16
17namespace KIO
18{
19class Worker;
20class WorkerInterface;
21
22class UserNotificationHandler : public QObject
23{
24 Q_OBJECT
25public:
26 enum MessageBoxDataType {
27 MSG_TEXT,
28 MSG_TITLE,
29 MSG_PRIMARYACTION_TEXT,
30 MSG_SECONDARYACTION_TEXT,
31 MSG_PRIMARYACTION_ICON,
32 MSG_SECONDARYACTION_ICON,
33 MSG_DONT_ASK_AGAIN,
34 MSG_DETAILS,
35 MSG_META_DATA,
36 };
37
38 class Request
39 {
40 public:
41 QString key() const;
42
43 int type;
44 QPointer<Worker> worker;
45 QHash<MessageBoxDataType, QVariant> data;
46 };
47
48 explicit UserNotificationHandler(QObject *parent = nullptr);
49 ~UserNotificationHandler() override;
50
51 void requestMessageBox(WorkerInterface *iface, int type, const QHash<MessageBoxDataType, QVariant> &data);
52
53 void sslError(WorkerInterface *iface, const QVariantMap &sslErrorData);
54
55private Q_SLOTS:
56 void processRequest();
57 void slotProcessRequest(int result);
58
59private:
60 QCache<QString, int> m_cachedResults;
61 QList<Request *> m_pendingRequests;
62};
63}
64
65#endif
66

source code of kio/src/core/usernotificationhandler_p.h