File indexing completed on 2024-04-14 14:10:27

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 <QWidget>
0010 #include <QJsonObject>
0011 
0012 class QComboBox;
0013 class QSpinBox;
0014 class QLineEdit;
0015 class QPushButton;
0016 
0017 class ProfileScript : public QWidget
0018 {
0019         Q_OBJECT
0020         Q_PROPERTY(uint PreDelay MEMBER m_PreDelay)
0021         Q_PROPERTY(QString PreScript MEMBER m_PreScript)
0022         Q_PROPERTY(QString Driver MEMBER m_Driver)
0023         Q_PROPERTY(uint PostDelay MEMBER m_PostDelay)
0024         Q_PROPERTY(QString PostScript MEMBER m_PostScript)
0025 
0026     public:
0027         explicit ProfileScript(QWidget *parent = nullptr);
0028         void setDriverList(const QStringList &value);
0029         void syncGUI();
0030         QJsonObject toJSON() const;
0031 
0032     protected:
0033         QString m_PreScript, m_PostScript, m_Driver;
0034         uint m_PreDelay {0}, m_PostDelay {0};
0035 
0036     private:
0037         QComboBox *m_DriverCombo {nullptr};
0038         QSpinBox *m_PreDelaySpin {nullptr}, *m_PostDelaySpin {nullptr};
0039         QLineEdit *m_PreScriptEdit {nullptr}, *m_PostScriptEdit {nullptr};
0040         QPushButton *m_PreScriptB {nullptr}, *m_PostScriptB {nullptr}, *m_RemoveB {nullptr};
0041 
0042     signals:
0043         void removedRequested();
0044 
0045     protected:
0046         void selectPreScript();
0047         void selectPostScript();
0048 
0049 };
0050