diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-11-27 11:24:18 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-11-27 10:44:43 +0000 |
commit | 30254c62db93c5724fe94eeef08a42fc3fbe6465 (patch) | |
tree | cc088bb9c991dff4fb1ef5baaff0aaeaa0504f01 | |
parent | fbd3ff2256a338a04f08923620216076be64106d (diff) |
PySide6/QtQml: Fix compilation with new QMetaTypeInterface
After qtbase/b4c17476129e07dd3bf52c6aac8a51cf30c2dd3a,
a function returning the QMetaObject * is required.
Task-number: QTBUG-88468
Change-Id: I2d957ff97a2bfa04578873ce098b1e623edf759a
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
-rw-r--r-- | sources/pyside6/PySide6/QtQuick/pysidequickregistertype.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.cpp b/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.cpp index fdc1a5656..104e7683c 100644 --- a/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.cpp +++ b/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.cpp @@ -84,15 +84,21 @@ template <typename T> struct QPysideQmlMetaTypeInterface : QtPrivate::QMetaTypeInterface { const QByteArray name; + const QMetaObject *metaObject; - QPysideQmlMetaTypeInterface(const QByteArray &name, const QMetaObject *metaObject = nullptr) + static const QMetaObject *metaObjectFn(const QMetaTypeInterface *mti) + { + return static_cast<const QPysideQmlMetaTypeInterface *>(mti)->metaObject; + } + + QPysideQmlMetaTypeInterface(const QByteArray &name, const QMetaObject *metaObjectIn = nullptr) : QMetaTypeInterface { /*.revision=*/ 0, /*.alignment=*/ alignof(T), /*.size=*/ sizeof(T), /*.flags=*/ QtPrivate::QMetaTypeTypeFlags<T>::Flags, /*.typeId=*/ 0, - /*.metaObject=*/ metaObject, + /*.metaObjectFn=*/ metaObjectFn, /*.name=*/ name.constData(), /*.defaultCtr=*/ [](const QMetaTypeInterface *, void *addr) { new (addr) T(); }, /*.copyCtr=*/ [](const QMetaTypeInterface *, void *addr, const void *other) { @@ -111,7 +117,7 @@ struct QPysideQmlMetaTypeInterface : QtPrivate::QMetaTypeInterface /*.dataStreamIn=*/ nullptr, /*.legacyRegisterOp=*/ nullptr } - , name(name) {} + , name(name), metaObject(metaObjectIn) {} }; template <class WrapperClass> |