Loading...
Searching...
No Matches
BitfocusProtocolSettingsWidget.hpp
1#pragma once
2#include <Device/Protocol/DeviceSettings.hpp>
3#include <Device/Protocol/ProtocolSettingsWidget.hpp>
4
5#include <Protocols/Bitfocus/BitfocusSpecificSettings.hpp>
6
7#include <QJSEngine>
8#include <QVariant>
9
10#include <functional>
11#include <verdigris>
12
13class QStackedLayout;
14class QLineEdit;
15class QVBoxLayout;
16class QFormLayout;
17class QSpinBox;
18class QWidget;
19class QLabel;
20class QScrollArea;
21
22namespace Protocols
23{
25{
26public:
27 explicit BitfocusProtocolSettingsWidget(QWidget* parent = nullptr);
28
29 Device::DeviceSettings getSettings() const override;
30 void setSettings(const Device::DeviceSettings& settings) override;
31
32 using Device::ProtocolSettingsWidget::checkForChanges;
33
34private:
35 void resetFields();
36 void updateFields();
37 void resizeEvent(QResizeEvent*) override;
38 BitfocusSpecificSettings m_settings;
39
40 QFormLayout* m_rootLayout{};
41 QLineEdit* m_deviceNameEdit{};
42 QScrollArea* m_scroll{};
43 QWidget* m_subWidget{};
44 QVBoxLayout* m_subForm{};
45
46 // Get the configuration for each widget
47 struct widget
48 {
49 QLabel* label{};
50 QWidget* widg{};
51 std::function<ossia::value()> getValue;
52 std::function<void(ossia::value)> setValue;
53 };
54
55 std::map<QString, widget> m_widgets;
56 QMetaObject::Connection m_configurationParsed;
57 QJSEngine m_uiEngine;
58 bool m_hasInitLabel{};
59 bool m_fieldsLoaded{};
60};
61}
Definition ProtocolSettingsWidget.hpp:27
Definition BitfocusProtocolSettingsWidget.hpp:25
Definition DeviceSettings.hpp:20
Definition BitfocusSpecificSettings.hpp:18