File indexing completed on 2024-05-26 05:38:50

0001 /*
0002     SPDX-FileCopyrightText: 2019 David Edmundson <davidedmundson@kde.org>
0003     SPDX-FileCopyrightText: 2019 Aleix Pol Gonzalez <aleixpol@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #pragma once
0009 
0010 #include <KQuickManagedConfigModule>
0011 #include <KSharedConfig>
0012 #include <QJsonArray>
0013 
0014 class FeedbackSettings;
0015 class FeedbackData;
0016 
0017 class Feedback : public KQuickManagedConfigModule
0018 {
0019     Q_OBJECT
0020 
0021     Q_PROPERTY(QJsonArray feedbackSources MEMBER m_feedbackSources NOTIFY feedbackSourcesChanged)
0022     Q_PROPERTY(QJsonArray audits READ audits CONSTANT)
0023     Q_PROPERTY(bool feedbackEnabled READ feedbackEnabled CONSTANT)
0024     Q_PROPERTY(FeedbackSettings *feedbackSettings READ feedbackSettings CONSTANT)
0025 
0026 public:
0027     explicit Feedback(QObject *parent, const KPluginMetaData &data);
0028 
0029     bool feedbackEnabled() const;
0030     FeedbackSettings *feedbackSettings() const;
0031 
0032     QJsonArray audits() const;
0033     void programFinished(int exitCode);
0034 
0035 Q_SIGNALS:
0036     void feedbackSourcesChanged();
0037 
0038 private:
0039     QHash<int, QHash<QString, QJsonArray>> m_uses;
0040     QJsonArray m_feedbackSources;
0041     FeedbackData *m_data;
0042 };