OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
PropertyGrid.h
Go to the documentation of this file.
1
4// ###########################################################################################################################################################################################################################################################################################################################
5
6#pragma once
7
8// OpenTwin header
12
13// Qt header
14#include <QtWidgets/qwidget.h>
15
16// std header
17#include <list>
18
19class QTreeWidgetItem;
20
21namespace ot {
22
23 class Property;
24 class TreeWidget;
25 class PropertyGridItem;
26 class PropertyGridTree;
27 class PropertyGridGroup;
28
29 class OT_WIDGETS_API_EXPORT PropertyGrid : public QObject, public QWidgetInterface {
30 Q_OBJECT
32 public:
33 PropertyGrid(QObject* _parentObject = (QObject*)nullptr);
34 virtual ~PropertyGrid();
35
36 // ###########################################################################################################################################################################################################################################################################################################################
37
38 // Base class functions
39
40 virtual QWidget* getQWidget(void) override;
41 virtual const QWidget* getQWidget(void) const override;
42
43 // ###########################################################################################################################################################################################################################################################################################################################
44
45 // Setter / Getter
46
47 TreeWidget* getTreeWidget(void) const;
48
49 void setupGridFromConfig(const PropertyGridCfg& _config);
50 void addGroup(PropertyGridGroup* _group);
51
52 PropertyGridGroup* findGroup(const std::string& _groupName) const;
53 PropertyGridGroup* findGroup(const std::list<std::string>& _groupPath) const;
54 PropertyGridItem* findItem(const std::string& _groupName, const std::string& _itemName) const;
55 PropertyGridItem* findItem(const std::list<std::string>& _groupPath, const std::string& _itemName) const;
56
57 void clear(void);
58
59 void focusProperty(const std::string& _groupName, const std::string& _itemName);
60 void focusProperty(const std::list<std::string>& _groupPath, const std::string& _itemName);
61
62 Q_SIGNALS:
63 void propertyChanged(const Property* const _property);
64 void propertyDeleteRequested(const Property* const _property);
65
66 private Q_SLOTS:
67 void slotPropertyChanged(const Property* const _property);
68 void slotPropertyDeleteRequested(const Property* const _property);
69 void slotItemCollapsed(QTreeWidgetItem* _item);
70 void slotItemExpanded(QTreeWidgetItem* _item);
71
72 private:
73 PropertyGridGroup* findGroup(QTreeWidgetItem* _parentTreeItem, const std::list<std::string>& _groupPath) const;
74
75 PropertyGridTree* m_tree;
76 };
77
78}
#define OT_DECL_NOCOPY(___class)
Removes the default copy constructor and assignment operator.
Definition OTClassHelper.h:14
#define OT_WIDGETS_API_EXPORT
Definition OTWidgetsAPIExport.h:12
Definition PropertyGridCfg.h:21
Definition PropertyGridGroup.h:25
Definition PropertyGrid.h:29
void propertyChanged(const Property *const _property)
void propertyDeleteRequested(const Property *const _property)
Definition PropertyGridItem.h:31
Definition PropertyGridTree.h:13
The Property class is used as a base class for all Properties that can be displayed and modified in t...
Definition Property.h:21
Definition QWidgetInterface.h:18
Definition TreeWidget.h:23
Definition Connector.h:8