Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QtAbstractEditorFactory< PropertyManager > Class Template Referenceabstract

The QtAbstractEditorFactory is the base template class for editor factories. More...

#include <qtpropertybrowser_p.h>

+ Inheritance diagram for QtAbstractEditorFactory< PropertyManager >:
+ Collaboration diagram for QtAbstractEditorFactory< PropertyManager >:

Public Member Functions

 QtAbstractEditorFactory (QObject *parent)
 Creates an editor factory with the given parent.
 
QWidgetcreateEditor (QtProperty *property, QWidget *parent) override
 Creates an editing widget (with the given parent) for the given property.
 
void addPropertyManager (PropertyManager *manager)
 Adds the given manager to this factory's set of managers, making this factory produce editing widgets for properties created by the given manager.
 
void removePropertyManager (PropertyManager *manager)
 Removes the given manager from this factory's set of managers.
 
QSet< PropertyManager * > propertyManagers () const
 Returns the factory's set of associated managers.
 
PropertyManager * propertyManager (QtProperty *property) const
 Returns the property manager for the given property, or 0 if the given property doesn't belong to any of this factory's registered managers.
 
- Public Member Functions inherited from QtAbstractEditorFactoryBase
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 

Protected Member Functions

virtual void connectPropertyManager (PropertyManager *manager)=0
 Connects this factory to the given manager's signals.
 
virtual QWidgetcreateEditor (PropertyManager *manager, QtProperty *property, QWidget *parent)=0
 Creates an editing widget with the given parent for the specified property created by the given manager.
 
virtual void disconnectPropertyManager (PropertyManager *manager)=0
 Disconnects this factory from the given manager's signals.
 
void managerDestroyed (QObject *manager) override
 
- Protected Member Functions inherited from QtAbstractEditorFactoryBase
 QtAbstractEditorFactoryBase (QObject *parent=0)
 Creates an abstract editor factory with the given parent.
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 

Private Member Functions

void breakConnection (QtAbstractPropertyManager *manager) override
 

Friends

class QtAbstractPropertyEditor
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 
- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 
- Protected Slots inherited from QtAbstractEditorFactoryBase
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Detailed Description

template<class PropertyManager>
class QtAbstractEditorFactory< PropertyManager >

The QtAbstractEditorFactory is the base template class for editor factories.

\inmodule QtDesigner

Since
4.4

An editor factory is a class that is able to create an editing widget of a specified type (e.g. line edits or comboboxes) for a given QtProperty object, and it is used in conjunction with the QtAbstractPropertyManager and QtAbstractPropertyBrowser classes.

Note that the QtAbstractEditorFactory functions are using the PropertyManager template argument class which can be any QtAbstractPropertyManager subclass. For example:

Note that QtSpinBoxFactory by definition creates editing widgets only for properties created by QtIntPropertyManager.

When using a property browser widget, the properties are created and managed by implementations of the QtAbstractPropertyManager class. To ensure that the properties' values will be displayed using suitable editing widgets, the managers are associated with objects of QtAbstractEditorFactory subclasses. The property browser will use these associations to determine which factories it should use to create the preferred editing widgets.

A QtAbstractEditorFactory object is capable of producing editors for several property managers at the same time. To create an association between this factory and a given manager, use the addPropertyManager() function. Use the removePropertyManager() function to make this factory stop producing editors for a given property manager. Use the propertyManagers() function to retrieve the set of managers currently associated with this factory.

Several ready-made implementations of the QtAbstractEditorFactory class are available:

\list

When deriving from the QtAbstractEditorFactory class, several pure virtual functions must be implemented: the connectPropertyManager() function is used by the factory to connect to the given manager's signals, the createEditor() function is supposed to create an editor for the given property controlled by the given manager, and finally the disconnectPropertyManager() function is used by the factory to disconnect from the specified manager's signals.

See also
QtAbstractEditorFactoryBase, QtAbstractPropertyManager

Definition at line 118 of file qtpropertybrowser_p.h.

Constructor & Destructor Documentation

◆ QtAbstractEditorFactory()

template<class PropertyManager >
QtAbstractEditorFactory< PropertyManager >::QtAbstractEditorFactory ( QObject * parent = 0)
inlineexplicit

Creates an editor factory with the given parent.

See also
addPropertyManager()

Definition at line 121 of file qtpropertybrowser_p.h.

Member Function Documentation

◆ addPropertyManager()

template<class PropertyManager >
void QtAbstractEditorFactory< PropertyManager >::addPropertyManager ( PropertyManager * manager)
inline

Adds the given manager to this factory's set of managers, making this factory produce editing widgets for properties created by the given manager.

The PropertyManager type is a template argument class, and represents the chosen QtAbstractPropertyManager subclass.

See also
propertyManagers(), removePropertyManager()

Definition at line 131 of file qtpropertybrowser_p.h.

References QtAbstractEditorFactory< PropertyManager >::connectPropertyManager().

+ Here is the call graph for this function:

◆ breakConnection()

template<class PropertyManager >
void QtAbstractEditorFactory< PropertyManager >::breakConnection ( QtAbstractPropertyManager * manager)
inlineoverrideprivatevirtual

Detaches property manager from factory. This method is reimplemented in QtAbstractEditorFactory template subclass. You don't need to reimplement it in your subclasses. Instead implement more convenient QtAbstractEditorFactory::disconnectPropertyManager() which gives you access to particular manager subclass.

Implements QtAbstractEditorFactoryBase.

Definition at line 178 of file qtpropertybrowser_p.h.

◆ connectPropertyManager()

template<class PropertyManager >
virtual void QtAbstractEditorFactory< PropertyManager >::connectPropertyManager ( PropertyManager * manager)
protectedpure virtual

Connects this factory to the given manager's signals.

The PropertyManager type is a template argument class, and represents the chosen QtAbstractPropertyManager subclass.

This function is used internally by the addPropertyManager() function, and makes it possible to update an editing widget when the associated property's data changes. This is typically done in custom slots responding to the signals emitted by the property's manager, e.g. QtIntPropertyManager::valueChanged() and QtIntPropertyManager::rangeChanged().

See also
propertyManagers(), disconnectPropertyManager()

Referenced by QtAbstractEditorFactory< PropertyManager >::addPropertyManager().

+ Here is the caller graph for this function:

◆ createEditor() [1/2]

template<class PropertyManager >
virtual QWidget * QtAbstractEditorFactory< PropertyManager >::createEditor ( PropertyManager * manager,
QtProperty * property,
QWidget * parent )
protectedpure virtual

Creates an editing widget with the given parent for the specified property created by the given manager.

The PropertyManager type is a template argument class, and represents the chosen QtAbstractPropertyManager subclass.

This function must be implemented in derived classes: It is recommended to store a pointer to the widget and map it to the given property, since the widget must be updated whenever the associated property's data changes. This is typically done in custom slots responding to the signals emitted by the property's manager, e.g. QtIntPropertyManager::valueChanged() and QtIntPropertyManager::rangeChanged().

See also
connectPropertyManager()

◆ createEditor() [2/2]

template<class PropertyManager >
QWidget * QtAbstractEditorFactory< PropertyManager >::createEditor ( QtProperty * property,
QWidget * parent )
inlineoverridevirtual

Creates an editing widget (with the given parent) for the given property.

Implements QtAbstractEditorFactoryBase.

Definition at line 122 of file qtpropertybrowser_p.h.

◆ disconnectPropertyManager()

template<class PropertyManager >
virtual void QtAbstractEditorFactory< PropertyManager >::disconnectPropertyManager ( PropertyManager * manager)
protectedpure virtual

Disconnects this factory from the given manager's signals.

The PropertyManager type is a template argument class, and represents the chosen QtAbstractPropertyManager subclass.

This function is used internally by the removePropertyManager() function.

See also
propertyManagers(), connectPropertyManager()

Referenced by QtAbstractEditorFactory< PropertyManager >::removePropertyManager().

+ Here is the caller graph for this function:

◆ managerDestroyed()

template<class PropertyManager >
void QtAbstractEditorFactory< PropertyManager >::managerDestroyed ( QObject * manager)
inlineoverrideprotectedvirtual

Implements QtAbstractEditorFactoryBase.

Definition at line 168 of file qtpropertybrowser_p.h.

◆ propertyManager()

template<class PropertyManager >
PropertyManager * QtAbstractEditorFactory< PropertyManager >::propertyManager ( QtProperty * property) const
inline

Returns the property manager for the given property, or 0 if the given property doesn't belong to any of this factory's registered managers.

The PropertyManager type is a template argument class, and represents the chosen QtAbstractPropertyManager subclass.

See also
propertyManagers()

Definition at line 153 of file qtpropertybrowser_p.h.

References QtProperty::propertyManager().

+ Here is the call graph for this function:

◆ propertyManagers()

template<class PropertyManager >
QSet< PropertyManager * > QtAbstractEditorFactory< PropertyManager >::propertyManagers ( ) const
inline

Returns the factory's set of associated managers.

The PropertyManager type is a template argument class, and represents the chosen QtAbstractPropertyManager subclass.

See also
addPropertyManager(), removePropertyManager()

Definition at line 149 of file qtpropertybrowser_p.h.

◆ removePropertyManager()

template<class PropertyManager >
void QtAbstractEditorFactory< PropertyManager >::removePropertyManager ( PropertyManager * manager)
inline

Removes the given manager from this factory's set of managers.

The PropertyManager type is a template argument class, and may be any QtAbstractPropertyManager subclass.

See also
propertyManagers(), addPropertyManager()

Definition at line 140 of file qtpropertybrowser_p.h.

References QtAbstractEditorFactory< PropertyManager >::disconnectPropertyManager().

+ Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ QtAbstractPropertyEditor

template<class PropertyManager >
friend class QtAbstractPropertyEditor
friend

Definition at line 189 of file qtpropertybrowser_p.h.


The documentation for this class was generated from the following files: