#ifndef QTMVVM_INPUTVIEWFACTORY_H #define QTMVVM_INPUTVIEWFACTORY_H #include #include #include #include #include "QtMvvmQuick/qtmvvmquick_global.h" namespace QtMvvm { class InputViewFactoryPrivate; class Q_MVVMQUICK_EXPORT InputViewFactory : public QObject { Q_OBJECT public: InputViewFactory(); virtual ~InputViewFactory(); Q_INVOKABLE virtual QUrl getInputUrl(const QByteArray &type, const QVariantMap &viewProperties); Q_INVOKABLE virtual QUrl getDelegate(const QByteArray &type, const QVariantMap &viewProperties); Q_INVOKABLE virtual void addSimpleInput(const QByteArray &type, const QUrl &qmlFileUrl); template inline void addSimpleInput(const QUrl &qmlFileUrl); Q_INVOKABLE virtual void addSimpleDelegate(const QByteArray &type, const QUrl &qmlFileUrl); template inline void addSimpleDelegate(const QUrl &qmlFileUrl); Q_INVOKABLE virtual void addInputAlias(const QByteArray &alias, const QByteArray &targetType); template inline void addInputAlias(); Q_INVOKABLE virtual void addDelegateAlias(const QByteArray &alias, const QByteArray &targetType); template inline void addDelegateAlias(); private: QScopedPointer d; }; template inline void InputViewFactory::addSimpleInput(const QUrl &qmlFileUrl) { addSimpleInput(QMetaType::typeName(qMetaTypeId()), qmlFileUrl); } template void InputViewFactory::addSimpleDelegate(const QUrl &qmlFileUrl) { addSimpleDelegate(QMetaType::typeName(qMetaTypeId()), qmlFileUrl); } template inline void InputViewFactory::addInputAlias() { addInputAlias(QMetaType::typeName(qMetaTypeId()), QMetaType::typeName(qMetaTypeId())); } template void InputViewFactory::addDelegateAlias() { addDelegateAlias(QMetaType::typeName(qMetaTypeId()), QMetaType::typeName(qMetaTypeId())); } } #endif // QTMVVM_INPUTVIEWFACTORY_H