Loading...
Searching...
No Matches
MapperDevice.hpp
1#pragma once
2
3#if __has_include(<QQmlEngine>)
4#include <Device/Protocol/DeviceInterface.hpp>
5#include <Device/Protocol/DeviceSettings.hpp>
6#include <Device/Protocol/ProtocolSettingsWidget.hpp>
7
8#include <Explorer/DefaultProtocolFactory.hpp>
9
10#include <verdigris>
11
12inline QDataStream&
13operator<<(QDataStream& st, const std::vector<ossia::net::node_base*>& p)
14{
15 return st;
16}
17inline QDataStream& operator>>(QDataStream& st, std::vector<ossia::net::node_base*>& p)
18{
19 return st;
20}
21Q_DECLARE_METATYPE(std::vector<ossia::net::node_base*>)
22W_REGISTER_ARGTYPE(std::vector<ossia::net::node_base*>)
23class QCodeEditor;
24class QPlainTextEdit;
25class QSplitter;
26namespace Protocols
27{
28class Mapper : public QObject
29{
30};
31
32struct MapperSpecificSettings
33{
34 QString text;
35};
36
37class MapperProtocolFactory final : public Protocols::DefaultProtocolFactory
38{
39 SCORE_CONCRETE("910e2d87-a087-430d-b725-c988fe2bea01")
40
41public:
42 ~MapperProtocolFactory();
43
44private:
45 QString prettyName() const noexcept override;
46 QString category() const noexcept override;
47 QUrl manual() const noexcept override;
48
49 Device::DeviceEnumerators
50 getEnumerators(const score::DocumentContext& ctx) const override;
51
52 Device::DeviceInterface* makeDevice(
53 const Device::DeviceSettings& settings,
54 const Explorer::DeviceDocumentPlugin& plugin,
55 const score::DocumentContext& ctx) override;
56
57 const Device::DeviceSettings& defaultSettings() const noexcept override;
58
59 Device::ProtocolSettingsWidget* makeSettingsWidget() override;
60
61 QVariant makeProtocolSpecificSettings(const VisitorVariant& visitor) const override;
62
63 void serializeProtocolSpecificSettings(
64 const QVariant& data, const VisitorVariant& visitor) const override;
65
66 bool checkCompatibility(
67 const Device::DeviceSettings& a,
68 const Device::DeviceSettings& b) const noexcept override;
69};
70
71class MapperProtocolSettingsWidget : public Device::ProtocolSettingsWidget
72{
73public:
74 MapperProtocolSettingsWidget(QWidget* parent = nullptr);
75
76 Device::DeviceSettings getSettings() const override;
77
78 void setSettings(const Device::DeviceSettings& settings) override;
79
80protected:
81 void setDefaults();
82 void validate();
83
84protected:
85 QLineEdit* m_name{};
86 QSplitter* m_splitter{};
87 QTextEdit* m_codeEdit{};
88 QPlainTextEdit* m_errorPane{};
89};
90}
91
92Q_DECLARE_METATYPE(Protocols::MapperSpecificSettings)
93W_REGISTER_ARGTYPE(Protocols::MapperSpecificSettings)
94#endif
Definition DefaultProtocolFactory.hpp:10
Manipulation of Devices from Qt.
Definition AddressSettings.cpp:14
Base toolkit upon which the software is built.
Definition Application.cpp:113
Definition DeviceSettings.hpp:20
The VisitorVariant struct.
Definition VisitorInterface.hpp:26