Little refactor in template definitions
This commit is contained in:
parent
10cee8d739
commit
5e9cf4cf4a
|
@ -99,14 +99,17 @@ const QmlRegisterType& DosQObjectWrapper<N,M>::qmlRegisterType()
|
|||
return m_data;
|
||||
}
|
||||
|
||||
template<int N>
|
||||
using RegisterTypeQObject = DosQObjectWrapper<N, 0>;
|
||||
|
||||
template<int N>
|
||||
int dosQmlRegisterType(QmlRegisterType args)
|
||||
{
|
||||
DosQObjectWrapper<N,0>::setQmlRegisterType(std::move(args));
|
||||
const QmlRegisterType& type = DosQObjectWrapper<N, 0>::qmlRegisterType();
|
||||
DosQObjectWrapper<N,0>::setStaticMetaObject(*(type.staticMetaObject->metaObject()));
|
||||
int result = qmlRegisterType<DosQObjectWrapper<N,0>>(type.uri.c_str(), type.major, type.minor, type.qml.c_str());
|
||||
DosQObjectWrapper<N,0>::setId(result);
|
||||
RegisterTypeQObject<N>::setQmlRegisterType(std::move(args));
|
||||
const QmlRegisterType& type = RegisterTypeQObject<N>::qmlRegisterType();
|
||||
RegisterTypeQObject<N>::setStaticMetaObject(*(type.staticMetaObject->metaObject()));
|
||||
int result = qmlRegisterType<RegisterTypeQObject<N>>(type.uri.c_str(), type.major, type.minor, type.qml.c_str());
|
||||
RegisterTypeQObject<N>::setId(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -139,10 +142,13 @@ int dosQmlRegisterType(QmlRegisterType args)
|
|||
return DosQmlRegisterHelper<35>::Register(i++, std::move(args));
|
||||
}
|
||||
|
||||
template<int N>
|
||||
using RegisterSingletonTypeQObject = DosQObjectWrapper<N, 1>;
|
||||
|
||||
template<int N>
|
||||
QObject *singletontype_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
|
||||
{
|
||||
return new DosQObjectWrapper<N,1>();
|
||||
return new RegisterSingletonTypeQObject<N>();
|
||||
}
|
||||
|
||||
template<int N>
|
||||
|
@ -151,11 +157,11 @@ int dosQmlRegisterSingletonType(QmlRegisterType args)
|
|||
using Func = QObject*(*)(QQmlEngine*, QJSEngine*);
|
||||
Func f = singletontype_provider<N>;
|
||||
|
||||
DosQObjectWrapper<N,1>::setQmlRegisterType(std::move(args));
|
||||
const QmlRegisterType& type = DosQObjectWrapper<N,1>::qmlRegisterType();
|
||||
DosQObjectWrapper<N,1>::setStaticMetaObject(*(type.staticMetaObject->metaObject()));
|
||||
int result = qmlRegisterSingletonType<DosQObjectWrapper<N,1>>(type.uri.c_str(), type.major, type.minor, type.qml.c_str(), f);
|
||||
DosQObjectWrapper<N,1>::setId(result);
|
||||
RegisterSingletonTypeQObject<N>::setQmlRegisterType(std::move(args));
|
||||
const QmlRegisterType& type = RegisterSingletonTypeQObject<N>::qmlRegisterType();
|
||||
RegisterSingletonTypeQObject<N>::setStaticMetaObject(*(type.staticMetaObject->metaObject()));
|
||||
int result = qmlRegisterSingletonType<RegisterSingletonTypeQObject<N>>(type.uri.c_str(), type.major, type.minor, type.qml.c_str(), f);
|
||||
RegisterSingletonTypeQObject<N>::setId(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue