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