A factory class to generate input edit views by their type names. More...
#include <inputviewfactory.h>
Public Member Functions | |
Q_INVOKABLE | InputViewFactory (QObject *parent=nullptr) |
Default constructor. | |
virtual Q_INVOKABLE QUrl | getInputUrl (const QByteArray &type, const QVariantMap &viewProperties) |
Find the input view URL of the given input type. More... | |
virtual Q_INVOKABLE QUrl | getDelegate (const QByteArray &type, const QVariantMap &viewProperties) |
Find the input list delegate URL of the given input type. More... | |
QTMVVM_REVISION_1 Q_INVOKABLE QString | format (const QByteArray &type, const QString &formatString, const QVariant &value, const QVariantMap &viewProperties) |
Formats the value using the internally registered Formatter for the given type. More... | |
template<typename TType > | |
void | addSimpleInput (const QUrl &qmlFileUrl) |
Adds a new QML file to create views for the given type. More... | |
virtual Q_INVOKABLE void | addSimpleInput (const QByteArray &type, const QUrl &qmlFileUrl) |
Adds a new QML file to create views for the given type. More... | |
template<typename TType > | |
void | addSimpleDelegate (const QUrl &qmlFileUrl) |
Adds a new QML file to create delegates for the given type. More... | |
virtual Q_INVOKABLE void | addSimpleDelegate (const QByteArray &type, const QUrl &qmlFileUrl) |
Adds a new QML file to create delegates for the given type. More... | |
template<typename TType > | |
void | addFormatter (Formatter *formatter) |
Adds a new Formatter to format delegate preview texts for the given type. More... | |
void | addFormatter (const QByteArray &type, Formatter *formatter) |
Adds a new Formatter to format delegate preview texts for the given type. More... | |
template<typename TAliasType , typename TTargetType > | |
void | addInputAlias () |
Adds a type name alias for views. More... | |
virtual Q_INVOKABLE void | addInputAlias (const QByteArray &alias, const QByteArray &targetType) |
Adds a type name alias for views. More... | |
template<typename TAliasType , typename TTargetType > | |
void | addDelegateAlias () |
Adds a type name alias for delegates. More... | |
virtual Q_INVOKABLE void | addDelegateAlias (const QByteArray &alias, const QByteArray &targetType) |
Adds a type name alias for delegates. More... | |
template<typename TAliasType , typename TTargetType > | |
void | addFormatterAlias () |
Adds a type name alias for formatters. More... | |
QTMVVM_REVISION_1 Q_INVOKABLE void | addFormatterAlias (const QByteArray &alias, const QByteArray &targetType) |
Adds a type name alias for formatters. More... | |
![]() | |
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 | |
![]() | |
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) |
![]() | |
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) |
![]() | |
objectName | |
A factory class to generate input edit views by their type names.
The factory is used by the QuickPresenter to create input views and delegates for various types. This is used to for example create the edits of input dialogs or for the list delegates of a SettingsView.
Definition at line 42 of file inputviewfactory.h.
|
inline |
Adds a type name alias for delegates.
TAliasType | The type to add as a new alias |
TTargetType | The type the alias should be translated to |
If an delegate view for the alias type is requested, one of the target type is created instead.
Definition at line 127 of file inputviewfactory.h.
|
virtual |
Adds a type name alias for delegates.
alias | The type to add as a new alias |
targetType | The type the alias should be translated to |
If an delegate view for the alias type is requested, one of the target type is created instead.
|
inline |
Adds a new Formatter to format delegate preview texts for the given type.
TType | The type to add a formatter for |
formatter | The formatter instance to be added |
The formatter must be valid and is registered in the factory. The factory takes ownership of the passed formatter. From now on it is used to convert display texts when format() is called.
Definition at line 115 of file inputviewfactory.h.
QtMvvm::InputViewFactory::addFormatter | ( | const QByteArray & | type, |
Formatter * | formatter | ||
) |
Adds a new Formatter to format delegate preview texts for the given type.
type | The type to add a formatter for |
formatter | The formatter instance to be added |
The formatter must be valid and is registered in the factory. The factory takes ownership of the passed formatter. From now on it is used to convert display texts when format() is called.
|
inline |
Adds a type name alias for formatters.
TAliasType | The type to add as a new alias |
TTargetType | The type the alias should be translated to |
If a formatter for the alias type is requested for the format() method, the one of the target type is used instead.
Definition at line 133 of file inputviewfactory.h.
QtMvvm::InputViewFactory::addFormatterAlias | ( | const QByteArray & | alias, |
const QByteArray & | targetType | ||
) |
Adds a type name alias for formatters.
alias | The type to add as a new alias |
targetType | The type the alias should be translated to |
If a formatter for the alias type is requested for the format() method, the one of the target type is used instead.
|
inline |
Adds a type name alias for views.
TAliasType | The type to add as a new alias |
TTargetType | The type the alias should be translated to |
If an input view for the alias type is requested, one of the target type is created instead.
Definition at line 121 of file inputviewfactory.h.
|
virtual |
Adds a type name alias for views.
alias | The type to add as a new alias |
targetType | The type the alias should be translated to |
If an input view for the alias type is requested, one of the target type is created instead.
|
inline |
Adds a new QML file to create delegates for the given type.
TType | The type to add a delegate view for |
qmlFileUrl | The URL of the QML file that contains the component |
The qmlFileUrl must be a valid URL to a QML file with a displayable quick item that can be used as a delegate for a ListView.
Definition at line 109 of file inputviewfactory.h.
|
virtual |
Adds a new QML file to create delegates for the given type.
type | The type to add a delegate view for |
qmlFileUrl | The URL of the QML file that contains the component |
The qmlFileUrl must be a valid URL to a QML file with a displayable quick item that can be used as a delegate for a ListView.
|
inline |
Adds a new QML file to create views for the given type.
TType | The type to add an input view for |
qmlFileUrl | The URL of the QML file that contains the component |
The qmlFileUrl must be a valid URL to a QML file with a displayable quick item. The item must have a property named inputValue
that is used to read and write the edit data.
Definition at line 103 of file inputviewfactory.h.
|
virtual |
Adds a new QML file to create views for the given type.
type | The type to add an input view for |
qmlFileUrl | The URL of the QML file that contains the component |
The qmlFileUrl must be a valid URL to a QML file with a displayable quick item. The item must have a property named inputValue
that is used to read and write the edit data.
QtMvvm::InputViewFactory::format | ( | const QByteArray & | type, |
const QString & | formatString, | ||
const QVariant & | value, | ||
const QVariantMap & | viewProperties | ||
) |
Formats the value using the internally registered Formatter for the given type.
type | The type to choose a formatter for |
formatString | Some kind of format string, depending on what the formatter wants here |
value | The actual value, packet as a variant |
viewProperties | Additional properies set on the delegate |
Internally, this method uses the Formatter registered for the given type and then returns the result of Formatter::format, invoked with the remaining parameters.
If no formatter was registered for the given type, this method simply returns formatString.arg(value.toString());
Currently, the following special formatters are set by default.
types | formatString semantics |
---|---|
int | A translated string with either %1 , L1 or n as number placeholder. If n is used, "plural-translations" are used |
list, selection, radiolist | A translated string with %1 as placeholder. If the list element is named, that one is used, otherwise the value itself |
QDateTime, QDate, QTime | Can either be the integer value of one of Qt::DateFormat or a standard date format string (QDateTime::toString). If neither is the case, the date is formatted using Qt::DefaultLocaleShortDate |
double | Uses the SimpleFormatter with double as template argument |
All other types use the fallback formatting.
|
virtual |
Find the input list delegate URL of the given input type.
type | The input type to create a delegate for |
viewProperties | A map with extra properties to be set on the delegate |
Delegates can be used to provide "editabel" list items for ListViews. (For example, the SettingsView makes use of them). Available roles are:
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 url registered as simple delegate exists for the given type and uses that one if present. If no simple delegate is set the default mapping for type to urls is used (See MessageConfig::TypeInputDialog for a full table of supported types). If no url can be found for a type, the MsgDelegate is returned, which will simply show an input of the given type. Thus, for all not explicitly supported delegate types, the getInputUrl() is used to find an edit for the dialog.
The viewProperties are used to setup the created delegate by settings them as properties on the delegate. For every key-value-pair in the map, QObject::setProperty is called on the delegate to set the property.
|
virtual |
Find the input view URL of the given input type.
type | The input type to create a view for |
viewProperties | A map with extra properties to be set on the edit |
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 url registered as simple view exists for the given type and uses that one if present. If no simple view is set the default mapping for type to urls is used (See MessageConfig::TypeInputDialog for a full table of supported types). If no url can be found for a type, an invalid url is returned.
The viewProperties are used to setup the created view by settings them as properties on the view. For every key-value-pair in the map, QObject::setProperty is called on the view to set the property.