diff options
Diffstat (limited to 'src/qml/qml/qqmlmoduleregistration.cpp')
-rw-r--r-- | src/qml/qml/qqmlmoduleregistration.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/qml/qml/qqmlmoduleregistration.cpp b/src/qml/qml/qqmlmoduleregistration.cpp index bb82ec1d95..b7bc3555a6 100644 --- a/src/qml/qml/qqmlmoduleregistration.cpp +++ b/src/qml/qml/qqmlmoduleregistration.cpp @@ -39,16 +39,28 @@ #include <QtQml/private/qqmlmetatype_p.h> #include <QtQml/qqmlmoduleregistration.h> -#include <QtCore/qglobalstatic.h> QT_BEGIN_NAMESPACE +struct QQmlModuleRegistrationPrivate +{ + const QString uri; + const int majorVersion; +}; + QQmlModuleRegistration::QQmlModuleRegistration( const char *uri, int majorVersion, - void (*registerFunction)()) + void (*registerFunction)()) : + d(new QQmlModuleRegistrationPrivate { QString::fromUtf8(uri), majorVersion }) { - QQmlMetaType::qmlInsertModuleRegistration(QString::fromUtf8(uri), majorVersion, + QQmlMetaType::qmlInsertModuleRegistration(d->uri, d->majorVersion, registerFunction); } +QQmlModuleRegistration::~QQmlModuleRegistration() +{ + QQmlMetaType::qmlRemoveModuleRegistration(d->uri, d->majorVersion); + delete d; +} + QT_END_NAMESPACE |