1 /*
2     SPDX-FileCopyrightText: 2019 David Edmundson <davidedmundson@kde.org>
3     SPDX-FileCopyrightText: 2019 Aleix Pol Gonzalez <aleixpol@kde.org>
4 
5     SPDX-License-Identifier: LGPL-2.0-or-later
6 */
7 
8 #pragma once
9 
10 #include <KQuickAddons/ManagedConfigModule>
11 
12 #include <KSharedConfig>
13 
14 class FeedbackSettings;
15 class FeedbackData;
16 
17 class Feedback : public KQuickAddons::ManagedConfigModule
18 {
19     Q_OBJECT
20 
21     Q_PROPERTY(QJsonArray feedbackSources MEMBER m_feedbackSources NOTIFY feedbackSourcesChanged)
22     Q_PROPERTY(QJsonArray audits READ audits CONSTANT)
23     Q_PROPERTY(bool feedbackEnabled READ feedbackEnabled CONSTANT)
24     Q_PROPERTY(FeedbackSettings *feedbackSettings READ feedbackSettings CONSTANT)
25 
26 public:
27     explicit Feedback(QObject *parent = nullptr, const QVariantList &list = QVariantList());
28     ~Feedback() override;
29 
30     bool feedbackEnabled() const;
31     FeedbackSettings *feedbackSettings() const;
32 
33     QJsonArray audits() const;
34     void programFinished(int exitCode);
35 
36 Q_SIGNALS:
37     void feedbackSourcesChanged();
38 
39 private:
40     QHash<int, QHash<QString, QJsonArray>> m_uses;
41     QJsonArray m_feedbackSources;
42     FeedbackData *m_data;
43 };
44