aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlmoduleregistration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qml/qqmlmoduleregistration.cpp')
-rw-r--r--src/qml/qml/qqmlmoduleregistration.cpp18
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