Loading...
Searching...
No Matches
AddressItemModel.hpp
1#pragma once
2#include <State/Widgets/Values/TypeComboBox.hpp>
3
4#include <Explorer/Explorer/ValueEditors.hpp>
5
6#include <Device/Address/AddressSettings.hpp>
7
8#include <Explorer/Explorer/DeviceExplorerModel.hpp>
9
10#include <QAbstractItemModel>
11#include <QStyledItemDelegate>
12
13#include <verdigris>
14
15namespace Explorer
16{
17class DeviceExplorerModel;
35class SCORE_PLUGIN_DEVICEEXPLORER_EXPORT AddressItemModel final
36 : public QAbstractItemModel
37{
38 W_OBJECT(AddressItemModel)
39public:
40 AddressItemModel(QObject* parent);
41 enum Rows
42 {
43 Name,
44 Address,
45 Value,
46 Type,
47 Min,
48 Max,
49 Values,
50 Unit,
51 Access,
52 Bounding,
53 Repetition,
54 Count
55 };
56
57 void setState(
60 void clear();
61
62 const Device::FullAddressSettings& settings() const { return m_settings; }
63
64 bool setData(const QModelIndex& index, const QVariant& value, int role) override;
65 Qt::ItemFlags flags(const QModelIndex& index) const override;
66 QModelIndex index(int row, int column, const QModelIndex& parent) const override;
67 QModelIndex parent(const QModelIndex& child) const override;
68 int rowCount(const QModelIndex& parent) const override;
69 int columnCount(const QModelIndex& parent) const override;
70 QVariant valueColumnData(const State::Value& val, int role) const;
71 QVariant data(const QModelIndex& index, int role) const override;
72
73private:
74 void pushedValue(const State::Address& addr, const ossia::value& v);
75 bool editableProperties() const;
76 bool editableName() const;
77 int extendedCount() const noexcept;
78 QPointer<DeviceExplorerModel> m_model;
79 Device::NodePath m_path;
81};
82
83class SCORE_PLUGIN_DEVICEEXPLORER_EXPORT AddressItemDelegate final
84 : public QStyledItemDelegate
85{
86public:
87 explicit AddressItemDelegate(QObject* parent = 0);
89
90private:
91 void paint(
92 QPainter* painter, const QStyleOptionViewItem& option,
93 const QModelIndex& index) const override;
94 QWidget* createEditor(
95 QWidget* parent, const QStyleOptionViewItem& option,
96 const QModelIndex& index) const override;
97 void setEditorData(QWidget* editor, const QModelIndex& index) const override;
98 void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index)
99 const override;
100};
101
102}
Definition AddressItemModel.hpp:85
Displays an address.
Definition AddressItemModel.hpp:37
Definition DeviceExplorerModel.hpp:67
Path in a tree of QAbstractItemModel objects.
Definition TreePath.hpp:34
Definition AddressSettings.hpp:62
The Address struct.
Definition Address.hpp:58