diff options
author | Lars Knoll <lars.knoll@qt.io> | 2020-07-10 10:33:49 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2020-08-28 13:49:11 +0200 |
commit | 2afed94c70913e018198422ef222c9168326d09c (patch) | |
tree | 526952d291b70065886377e540f9e149be2f1537 /src/qml/qml | |
parent | 6e423233b2e419fc3d7fc30bebcad976dca31934 (diff) |
Fix QtQml after QMetaType/QVariant changes in Qt Core
Change-Id: I2a983cf8188e88d80d3b7726208d821427eb8f3c
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/qml')
-rw-r--r-- | src/qml/qml/qqmlengine.cpp | 10 | ||||
-rw-r--r-- | src/qml/qml/qqmlmetatype.cpp | 13 |
2 files changed, 11 insertions, 12 deletions
diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp index 7191da694d..4326002575 100644 --- a/src/qml/qml/qqmlengine.cpp +++ b/src/qml/qml/qqmlengine.cpp @@ -767,23 +767,23 @@ void QQmlData::signalEmitted(QAbstractDeclarativeData *, QObject *object, int in parameterTypes.count() + 1)); void **args = ev->args(); - int *types = ev->types(); + QMetaType *types = ev->types(); for (int ii = 0; ii < parameterTypes.count(); ++ii) { const QByteArray &typeName = parameterTypes.at(ii); if (typeName.endsWith('*')) - types[ii + 1] = QMetaType::VoidStar; + types[ii + 1] = QMetaType(QMetaType::VoidStar); else - types[ii + 1] = QMetaType::type(typeName); + types[ii + 1] = QMetaType::fromName(typeName); - if (!types[ii + 1]) { + if (!types[ii + 1].isValid()) { qWarning("QObject::connect: Cannot queue arguments of type '%s'\n" "(Make sure '%s' is registered using qRegisterMetaType().)", typeName.constData(), typeName.constData()); return; } - args[ii + 1] = QMetaType::create(types[ii + 1], a[ii + 1]); + args[ii + 1] = types[ii + 1].create(a[ii + 1]); } QQmlThreadNotifierProxyObject *mpo = new QQmlThreadNotifierProxyObject; diff --git a/src/qml/qml/qqmlmetatype.cpp b/src/qml/qml/qqmlmetatype.cpp index 9b0df3c5c4..cb2522a675 100644 --- a/src/qml/qml/qqmlmetatype.cpp +++ b/src/qml/qml/qqmlmetatype.cpp @@ -549,16 +549,12 @@ struct QQmlMetaTypeInterface : QtPrivate::QMetaTypeInterface QQmlMetaTypeInterface(const QByteArray &name) : QMetaTypeInterface { /*.revision=*/ 0, - /*.size=*/ sizeof(T), /*.alignment=*/ alignof(T), + /*.size=*/ sizeof(T), /*.flags=*/ QtPrivate::QMetaTypeTypeFlags<T>::Flags, - /*.metaObject=*/ nullptr, - /*.name=*/ name.constData(), /*.typeId=*/ 0, - /*.ref=*/ { Q_BASIC_ATOMIC_INITIALIZER(0) }, - /*.deleteSelf=*/ [](QMetaTypeInterface *self) { - delete static_cast<QQmlMetaTypeInterface *>(self); - }, + /*.metaObject=*/ nullptr,//QtPrivate::MetaObjectForType<T>::value(), + /*.name=*/ name.constData(), /*.defaultCtr=*/ [](const QMetaTypeInterface *, void *addr) { new (addr) T(); }, /*.copyCtr=*/ [](const QMetaTypeInterface *, void *addr, const void *other) { new (addr) T(*reinterpret_cast<const T *>(other)); @@ -571,6 +567,9 @@ struct QQmlMetaTypeInterface : QtPrivate::QMetaTypeInterface }, /*.equals*/ nullptr, /*.lessThan*/ nullptr, + /*.debugStream=*/ nullptr, + /*.dataStreamOut=*/ nullptr, + /*.dataStreamIn=*/ nullptr, /*.legacyRegisterOp=*/ nullptr } , name(name) { } |