File indexing completed on 2024-04-21 03:43:42

0001 /*
0002     SPDX-FileCopyrightText: 2022 Jasem Mutlaq <mutlaqja@ikarustech.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <QDialog>
0010 #include <QJsonArray>
0011 #include <QList>
0012 
0013 class ProfileScript;
0014 class QVBoxLayout;
0015 class QDialogButtonBox;
0016 
0017 class ProfileScriptDialog : public QDialog
0018 {
0019         Q_OBJECT
0020 
0021 
0022     public:
0023         explicit ProfileScriptDialog(const QStringList &drivers, const QByteArray &settings, QWidget *parent = nullptr);
0024         const QJsonArray &jsonSettings() const
0025         {
0026             return m_ProfileScripts;
0027         }
0028 
0029     protected:
0030 
0031         QJsonArray m_ProfileScripts;
0032         QList<ProfileScript *> m_ProfileScriptWidgets;
0033 
0034         void addRule();
0035         void addJSONRule(QJsonObject settings);
0036         void removeRule();
0037         void generateSettings();
0038         void parseSettings(const QByteArray &settings);
0039 
0040     private:
0041         QVBoxLayout *m_MainLayout {nullptr};
0042         QDialogButtonBox *m_ButtonBox {nullptr};
0043         QPushButton *m_AddRuleB {nullptr}, *m_RemoveRuleB {nullptr};
0044         QStringList m_DriversList;
0045 
0046 };
0047 
0048