OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
PropertyDialog.h
Go to the documentation of this file.
1
4// ###########################################################################################################################################################################################################################################################################################################################
5
6#pragma once
7
8// OpenTwin header
11#include "OTWidgets/Dialog.h"
13
14// std header
15#include <map>
16
17class QTreeWidgetItem;
18
19namespace ot {
20
21 class PropertyGrid;
22 class PropertyGridItem;
23 class PropertyGridGroup;
24 class TreeWidgetItem;
25
33 Q_OBJECT
35 public:
36 PropertyDialog(const PropertyDialogCfg& _config, QWidget* _parentWidget = (QWidget*)nullptr);
37 virtual ~PropertyDialog();
38
41 void setupFromConfiguration(const PropertyDialogCfg& _config);
42
43 const PropertyGrid* const getPropertyGrid(void) const { return m_grid; };
44
45 const std::list<const Property*>& getChangedProperties(void) const { return m_changedProperties; };
46
47 Q_SIGNALS:
48 void propertyChanged(const Property* _property);
49 void propertyDeleteRequested(const Property* _property);
50
51 // ###########################################################################################################################################################################################################################################################################################################################
52
53 // Private slots
54
55 private Q_SLOTS:
56 void slotConfirm(void);
57 void slotCancel(void);
58 void slotTreeSelectionChanged(void);
59 void slotPropertyChanged(const Property* _property);
60 void slotPropertyDeleteRequested(const Property* _property);
61
62 // ###########################################################################################################################################################################################################################################################################################################################
63
64 // Private helper
65
66 private:
69
70 void iniData(const PropertyDialogCfg& _config);
71 void iniGroup(QTreeWidgetItem* _parentTreeItem, const PropertyGroup* _group);
72 bool childItemExists(QTreeWidgetItem* _item, const QString& _text);
73
77 PropertyGroup* createRootGroupConfig(const PropertyGroup* _group);
78
79 QTreeWidgetItem* findTreeItem(QTreeWidgetItem* _parent, QStringList _path) const;
80
81 std::map<QTreeWidgetItem*, PropertyDialogEntry> m_treeMap;
82
83 std::list<const Property*> m_changedProperties;
84 PropertyDialogNavigation* m_navigation;
85 PropertyGrid* m_grid;
86 bool m_changed;
87 };
88
89}
#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 Dialog.h:19
Definition PropertyDialog.cpp:50
Definition PropertyDialog.cpp:33
Definition PropertyDialogCfg.h:20
The PropertyDialog is used to edit many property groups. When a property is changed a copy of the pro...
Definition PropertyDialog.h:32
const std::list< const Property * > & getChangedProperties(void) const
Definition PropertyDialog.h:45
void propertyDeleteRequested(const Property *_property)
void propertyChanged(const Property *_property)
const PropertyGrid *const getPropertyGrid(void) const
Definition PropertyDialog.h:43
Definition PropertyGrid.h:29
Definition PropertyGroup.h:23
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 Connector.h:8