A factory class to generate input edit widgets by their type names. More...
#include <inputwidgetfactory.h>
Public Member Functions | |
Q_INVOKABLE | InputWidgetFactory (QObject *parent=nullptr) |
Default constructor. | |
virtual QWidget * | createInput (const QByteArray &type, QWidget *parent, const QVariantMap &viewProperties) |
Create a new input widget of the given input type. More... | |
template<typename TType , typename TWidget > | |
void | addSimpleWidget () |
Adds a new generator to create widgets for the given type. More... | |
virtual void | addSimpleWidget (const QByteArray &type, const std::function< QWidget *(QWidget *)> &creator) |
Adds a new generator to create widgets for the given type. More... | |
template<typename TAliasType , typename TTargetType > | |
void | addAlias () |
Adds a type name alias. More... | |
virtual void | addAlias (const QByteArray &alias, const QByteArray &targetType) |
Adds a type name alias. More... | |
Public Member Functions inherited from QObject | |
virtual const QMetaObject * | metaObject () const const |
virtual void * | qt_metacast (const char *) |
virtual int | qt_metacall (QMetaObject::Call, int, void **) |
QObject (QObject *parent) | |
virtual bool | event (QEvent *e) |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
QString | objectName () const const |
void | setObjectName (const QString &name) |
bool | isWidgetType () const const |
bool | isWindowType () const const |
bool | signalsBlocked () const const |
bool | blockSignals (bool block) |
QThread * | thread () const const |
void | moveToThread (QThread *targetThread) |
int | startTimer (int interval, Qt::TimerType timerType) |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType) |
void | killTimer (int id) |
T | findChild (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegExp ®Exp, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const |
const QObjectList & | children () const const |
void | setParent (QObject *parent) |
void | installEventFilter (QObject *filterObj) |
void | removeEventFilter (QObject *obj) |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const |
bool | disconnect (const char *signal, const QObject *receiver, const char *method) const const |
bool | disconnect (const QObject *receiver, const char *method) const const |
void | dumpObjectTree () |
void | dumpObjectInfo () |
void | dumpObjectTree () const const |
void | dumpObjectInfo () const const |
bool | setProperty (const char *name, const QVariant &value) |
QVariant | property (const char *name) const const |
QList< QByteArray > | dynamicPropertyNames () const const |
void | destroyed (QObject *obj) |
void | objectNameChanged (const QString &objectName) |
QObject * | parent () const const |
bool | inherits (const char *className) const const |
void | deleteLater () |
Additional Inherited Members | |
Static Public Member Functions inherited from QObject | |
QString | tr (const char *sourceText, const char *disambiguation, int n) |
QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, Functor functor) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type) |
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
bool | disconnect (const QMetaObject::Connection &connection) |
bool | disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) |
Protected Member Functions inherited from QObject | |
QObject * | sender () const const |
int | senderSignalIndex () const const |
int | receivers (const char *signal) const const |
bool | isSignalConnected (const QMetaMethod &signal) const const |
virtual void | timerEvent (QTimerEvent *event) |
virtual void | childEvent (QChildEvent *event) |
virtual void | customEvent (QEvent *event) |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
Properties inherited from QObject | |
objectName | |
A factory class to generate input edit widgets by their type names.
The factory is used by the WidgetsPresenter to create input widgets for various types. This is used to for example create the edits of input dialogs or for the edit fields of a SettingsDialog.
Definition at line 17 of file inputwidgetfactory.h.
|
inline |
Adds a type name alias.
TAliasType | The type to add as a new alias |
TTargetType | The type the alias should be translated to |
If an input widget for the alias type is requested, one of the target type is created instead.
Definition at line 54 of file inputwidgetfactory.h.
|
virtual |
Adds a type name alias.
alias | The type to add as a new alias |
targetType | The type the alias should be translated to |
If an input widget for the alias type is requested, one of the target type is created instead.
|
inline |
Adds a new generator to create widgets for the given type.
TType | The type to add a widget for |
TWidget | The type of the widget to provide for that type |
The TWidget type must extend QWidget and have a constructor that takes a single QWidget*
as argument. It furthermore needs to have a USER property, which is used to read and write the input value.
Definition at line 46 of file inputwidgetfactory.h.
|
virtual |
Adds a new generator to create widgets for the given type.
type | The type to add a widget for |
creator | A function that creates a new instance of a widget for the given type |
The QWidget*
argument of the creator function must be used as the parent of the created widget that is returned by the function. It furthermore needs to have a USER property, which is used to read and write the input value.
|
virtual |
Create a new input widget of the given input type.
type | The input type to create a widget for |
parent | The parent widget for the created widget |
viewProperties | A map with extra properties to be set on the edit |
PresenterException | In case no widget could be found or created for the given type |
The factory first checks if the given type is registered as alias. If yes, it continues with the aliased type. Then it checks for a widget registered as simple widget exists for the given type and uses that one if present. If no simple widget is set the default mapping for type to widgets is used (See MessageConfig::TypeInputDialog for a full table of supported types). If no widget can be found for a type, an exception is thrown.
The viewProperties are used to setup the created widget by settings them as properties on the widget. For every key-value-pair in the map, QObject::setProperty is called on the widget to set the property.