|
|
|
/*!
|
|
|
|
@class QtMvvm::InputWidgetFactory
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
@sa WidgetsPresenter, WidgetsPresenter::inputWidgetFactory, MessageConfig::TypeInputDialog,
|
|
|
|
QtMvvm::getInput, SettingsViewModel
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*!
|
|
|
|
@fn QtMvvm::InputWidgetFactory::createInput
|
|
|
|
|
|
|
|
@param type The input type to create a widget for
|
|
|
|
@param parent The parent widget for the created widget
|
|
|
|
@param viewProperties A map with extra properties to be set on the edit
|
|
|
|
@returns A newly created widget suitable for editing input of the given type
|
|
|
|
@throws 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.
|
|
|
|
|
|
|
|
@sa MessageConfig::TypeInputDialog, InputWidgetFactory::addSimpleWidget,
|
|
|
|
InputWidgetFactory::addAlias
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*!
|
|
|
|
@fn QtMvvm::InputWidgetFactory::addSimpleWidget()
|
|
|
|
|
|
|
|
@tparam TType The type to add a widget for
|
|
|
|
@tparam 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.
|
|
|
|
|
|
|
|
@sa InputWidgetFactory::createInput, InputWidgetFactory::addAlias
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*!
|
|
|
|
@fn QtMvvm::InputWidgetFactory::addSimpleWidget(const QByteArray &, const std::function<QWidget*(QWidget*)> &)
|
|
|
|
|
|
|
|
@param type The type to add a widget for
|
|
|
|
@param 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.
|
|
|
|
|
|
|
|
@sa InputWidgetFactory::createInput, InputWidgetFactory::addAlias
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*!
|
|
|
|
@fn QtMvvm::InputWidgetFactory::addAlias()
|
|
|
|
|
|
|
|
@tparam TAliasType The type to add as a new alias
|
|
|
|
@tparam 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.
|
|
|
|
|
|
|
|
@sa InputWidgetFactory::createInput, InputWidgetFactory::addSimpleWidget
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*!
|
|
|
|
@fn QtMvvm::InputWidgetFactory::addAlias(const QByteArray &, const QByteArray &)
|
|
|
|
|
|
|
|
@param alias The type to add as a new alias
|
|
|
|
@param 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.
|
|
|
|
|
|
|
|
@sa InputWidgetFactory::createInput, InputWidgetFactory::addSimpleWidget
|
|
|
|
*/
|