OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
ApplicationPropertiesManager.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// Qt header
15#include <QtCore/qobject.h>
16
17// std header
18#include <map>
19#include <string>
20
21namespace ot {
22
23 class PropertyDialog;
24
26 Q_OBJECT
28 public:
29 static ApplicationPropertiesManager& instance(void);
30
31 ot::Dialog::DialogResult showDialog(void);
32
33 void clear(void);
34
35 std::list<const Property*> getChangedProperties(void) const { return m_changedProperties; };
36
37 Q_SIGNALS:
38 void propertyChanged(const std::string& _owner, const Property* const _property);
39 void propertyDeleteRequested(const std::string& _owner, const Property* const _property);
40
41 public:
42 // ###########################################################################################################################################################################################################################################################################################################################
43
44 // Setter / Getter
45
46 void add(const std::string& _owner, const PropertyGridCfg& _config);
47
50 void setReplaceExistingPropertiesOnMerge(bool _replace) { m_propertyReplaceOnMerge = _replace; };
51
54 bool getReplaceExistingPropertiesOnMerge(void) const { return m_propertyReplaceOnMerge; };
55
56 const PropertyDialog* const getDialog(void) const { return m_dialog; };
57
58 void setDialogTitle(const QString& _title);
59 const QString getDialogTitle(void) const { return m_dialogTitle; };
60
61 // ###########################################################################################################################################################################################################################################################################################################################
62
63 // Private
64
65 private Q_SLOTS:
66 void slotPropertyChanged(const Property* _property);
67 void slotPropertyDeleteRequested(const Property* _property);
68
69 private:
70 bool m_propertyReplaceOnMerge;
71
72 std::list<const Property*> m_changedProperties;
73 std::map<std::string, PropertyGridCfg> m_data;
74 PropertyDialog* m_dialog;
75 QString m_dialogTitle;
76
77 PropertyGridCfg findData(const std::string& _owner);
78
81 Property* createCleanedSlotProperty(const Property* _property, std::string& _owner);
82
83 void updateCurrentDialog(void);
84
85 PropertyGridCfg buildDialogConfiguration(void);
86
89 };
90
91}
This file contains defines that may be used simplyfy class creation.
#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 ApplicationPropertiesManager.h:25
const PropertyDialog *const getDialog(void) const
Definition ApplicationPropertiesManager.h:56
const QString getDialogTitle(void) const
Definition ApplicationPropertiesManager.h:59
void setReplaceExistingPropertiesOnMerge(bool _replace)
Changes the merge behaviour.
Definition ApplicationPropertiesManager.h:50
void propertyDeleteRequested(const std::string &_owner, const Property *const _property)
void propertyChanged(const std::string &_owner, const Property *const _property)
bool getReplaceExistingPropertiesOnMerge(void) const
The current property merge behaviour.
Definition ApplicationPropertiesManager.h:54
std::list< const Property * > getChangedProperties(void) const
Definition ApplicationPropertiesManager.h:35
DialogResult
Definition Dialog.h:23
The PropertyDialog is used to edit many property groups. When a property is changed a copy of the pro...
Definition PropertyDialog.h:32
Definition PropertyGridCfg.h:21
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