#ifndef QTMVVM_INPUTWIDGETFACTORY_H #define QTMVVM_INPUTWIDGETFACTORY_H #include #include #include #include "QtMvvmWidgets/qtmvvmwidgets_global.h" namespace QtMvvm { class InputWidgetFactoryPrivate; class InputWidgetFactory { public: InputWidgetFactory(); virtual ~InputWidgetFactory(); virtual QWidget *createInput(const QByteArray &type, QWidget *parent, const QVariantMap &viewProperties); virtual void addSimpleWidget(const QByteArray &type, const std::function &creator); template void addSimpleWidget(); private: QScopedPointer d; }; template void InputWidgetFactory::addSimpleWidget() { addSimpleWidget(QMetaType::typeName(qMetaTypeId()), [](QWidget *parent){ return new TWidget(parent); }); } } #endif // QTMVVM_INPUTWIDGETFACTORY_H