41 #ifndef QTPROPERTYBROWSER_H 42 #define QTPROPERTYBROWSER_H 44 #include <QtWidgets/QWidget> 46 #include <QtWidgets/QLineEdit> 48 #if QT_VERSION >= 0x040400 53 # if defined(COMPILE_QTPROPERTYBROWSER) 54 # define QT_QTPROPERTYBROWSER_EXPORT __declspec(dllexport) 56 # define QT_QTPROPERTYBROWSER_EXPORT __declspec(dllimport) 59 #define QT_QTPROPERTYBROWSER_EXPORT 117 QList<QtProperty*> subProperties()
const;
121 QString toolTip()
const;
122 QString statusTip()
const;
123 QString whatsThis()
const;
124 QString propertyName()
const;
125 bool isEnabled()
const;
126 bool isModified()
const;
128 bool hasValue()
const;
129 QIcon valueIcon()
const;
130 QString valueText()
const;
131 QString displayText()
const;
133 void setToolTip(
const QString& text);
134 void setStatusTip(
const QString& text);
135 void setWhatsThis(
const QString& text);
136 void setPropertyName(
const QString& text);
137 void setEnabled(
bool enable);
138 void setModified(
bool modified);
145 void propertyChanged();
160 QSet<QtProperty*> properties()
const;
163 QtProperty* addProperty(
const QString& name = QString());
172 virtual bool hasValue(
const QtProperty* property)
const;
173 virtual QIcon valueIcon(
const QtProperty* property)
const;
174 virtual QString valueText(
const QtProperty* property)
const;
175 virtual QString displayText(
const QtProperty* property)
const;
177 virtual void initializeProperty(
QtProperty* property) = 0;
178 virtual void uninitializeProperty(
QtProperty* property);
190 virtual QWidget* createEditor(
QtProperty* property, QWidget* parent) = 0;
197 virtual void managerDestroyed(QObject* manager) = 0;
202 template <
class PropertyManager>
207 QSetIterator<PropertyManager*> it(m_managers);
208 while (it.hasNext()) {
209 PropertyManager* manager = it.next();
211 return createEditor(manager, property, parent);
217 if (m_managers.contains(manager)) {
220 m_managers.insert(manager);
221 connectPropertyManager(manager);
222 connect(manager, SIGNAL(destroyed(QObject*)),
223 this, SLOT(managerDestroyed(QObject*)));
226 if (!m_managers.contains(manager)) {
229 disconnect(manager, SIGNAL(destroyed(QObject*)),
230 this, SLOT(managerDestroyed(QObject*)));
231 disconnectPropertyManager(manager);
232 m_managers.remove(manager);
239 QSetIterator<PropertyManager*> itManager(m_managers);
240 while (itManager.hasNext()) {
241 PropertyManager* m = itManager.next();
249 virtual void connectPropertyManager(PropertyManager* manager) = 0;
250 virtual QWidget* createEditor(PropertyManager* manager,
QtProperty* property,
251 QWidget* parent) = 0;
252 virtual void disconnectPropertyManager(PropertyManager* manager) = 0;
254 QSetIterator<PropertyManager*> it(m_managers);
255 while (it.hasNext()) {
256 PropertyManager* m = it.next();
258 m_managers.remove(m);
265 QSetIterator<PropertyManager*> it(m_managers);
266 while (it.hasNext()) {
267 PropertyManager* m = it.next();
269 removePropertyManager(m);
276 friend class QtAbstractPropertyEditor;
286 QList<QtBrowserItem*> children()
const;
304 QList<QtProperty*> properties()
const;
305 QList<QtBrowserItem*> items(
QtProperty* property)
const;
307 QList<QtBrowserItem*> topLevelItems()
const;
310 template <
class PropertyManager>
316 if (addFactory(abstractManager, abstractFactory)) {
342 virtual QWidget* createEditor(
QtProperty* property, QWidget* parent);
351 Q_PRIVATE_SLOT(d_func(),
void slotPropertyInserted(
QtProperty*,
353 Q_PRIVATE_SLOT(d_func(),
void slotPropertyRemoved(
QtProperty*,
355 Q_PRIVATE_SLOT(d_func(),
void slotPropertyDestroyed(
QtProperty*))
356 Q_PRIVATE_SLOT(d_func(),
void slotPropertyDataChanged(
QtProperty*))
360 #if QT_VERSION >= 0x040400 364 #endif // QTPROPERTYBROWSER_H QSet< PropertyManager * > m_managers
Definition: qtpropertybrowser.h:275
Definition: qtpropertybrowser.cpp:55
QtAbstractPropertyBrowser provides a base class for implementing property browsers.
Definition: qtpropertybrowser.h:297
QtAbstractPropertyManagerPrivate * d_ptr
Definition: qtpropertybrowser.h:182
The QtBrowserItem class represents a property in a property browser instance.
Definition: qtpropertybrowser.h:282
Definition: qtpropertybrowser.cpp:76
The QtAbstractPropertyManager provides an interface for property managers.
Definition: qtpropertybrowser.h:153
Definition: qtpropertybrowser.cpp:1073
void addPropertyManager(PropertyManager *manager)
Definition: qtpropertybrowser.h:216
void breakConnection(QtAbstractPropertyManager *manager)
Definition: qtpropertybrowser.h:264
QtAbstractPropertyBrowserPrivate * d_ptr
Definition: qtpropertybrowser.h:348
QtAbstractPropertyManager * propertyManager() const
Definition: qtpropertybrowser.cpp:196
The QtAbstractEditorFactory is the base template class for editor factories.
Definition: qtpropertybrowser.h:203
QtAbstractEditorFactory(QObject *parent)
Definition: qtpropertybrowser.h:205
QtPropertyPrivate * d_ptr
Definition: qtpropertybrowser.h:148
void setFactoryForManager(PropertyManager *manager, QtAbstractEditorFactory< PropertyManager > *factory)
Definition: qtpropertybrowser.h:311
void managerDestroyed(QObject *manager)
Definition: qtpropertybrowser.h:253
QtAbstractEditorFactoryBase(QObject *parent=nullptr)
Definition: qtpropertybrowser.h:192
#define QT_QTPROPERTYBROWSER_EXPORT
Definition: qtpropertybrowser.h:59
QSet< PropertyManager * > propertyManagers() const
Definition: qtpropertybrowser.h:234
PropertyManager * propertyManager(QtProperty *property) const
Definition: qtpropertybrowser.h:237
QWidget * createEditor(QtProperty *property, QWidget *parent)
Definition: qtpropertybrowser.h:206
The QtProperty class encapsulates an instance of a property.
Definition: qtpropertybrowser.h:113
void removePropertyManager(PropertyManager *manager)
Definition: qtpropertybrowser.h:225
QLineEdit::EchoMode EchoMode
Definition: qtpropertybrowser.h:62
Definition: qtpropertybrowser.cpp:1193
The QtAbstractEditorFactoryBase provides an interface for editor factories.
Definition: qtpropertybrowser.h:187
QtBrowserItemPrivate * d_ptr
Definition: qtpropertybrowser.h:291