aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/libpyside/dynamicqmetaobject.cpp
diff options
context:
space:
mode:
authorCristián Maureira-Fredes <Cristian.Maureira-Fredes@qt.io>2021-07-15 14:09:44 +0200
committerCristián Maureira-Fredes <Cristian.Maureira-Fredes@qt.io>2021-08-17 23:15:52 +0200
commit6d07b7256c350835917d30cf74c8180592b80452 (patch)
treec13d2ce473aa8a5c78936ef0119ccaddc8d61a7b /sources/pyside6/libpyside/dynamicqmetaobject.cpp
parentea358c8fbb7a12369565d4f797a75738f7dd76ef (diff)
Implement qmlRegisterSingletonInstance
Using a similar approach to the qmlRegisterSingletonType, but wrapping the instance (QObject) into a SingletonFunctor as described in Qt/C++. Add helper function PySide::isQObjectDerived Task-number: PYSIDE-487 Change-Id: Id0fd9da0351a9ba58eae006d7d882f9815f06742 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside6/libpyside/dynamicqmetaobject.cpp')
-rw-r--r--sources/pyside6/libpyside/dynamicqmetaobject.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/sources/pyside6/libpyside/dynamicqmetaobject.cpp b/sources/pyside6/libpyside/dynamicqmetaobject.cpp
index b7febf492..5269067e7 100644
--- a/sources/pyside6/libpyside/dynamicqmetaobject.cpp
+++ b/sources/pyside6/libpyside/dynamicqmetaobject.cpp
@@ -47,6 +47,7 @@
#include "pysideqenum.h"
#include <shiboken.h>
+#include <pyside.h>
#include <QtCore/QByteArray>
#include <QtCore/QObject>
@@ -466,7 +467,6 @@ void MetaObjectBuilderPrivate::parsePythonType(PyTypeObject *type)
// existing connections.
const PyObject *mro = type->tp_mro;
const Py_ssize_t basesCount = PyTuple_GET_SIZE(mro);
- PyTypeObject *qObjectType = Conversions::getPythonTypeObject("QObject*");
std::vector<PyTypeObject *> basesToCheck;
// Prepend the actual type that we are parsing.
@@ -478,7 +478,7 @@ void MetaObjectBuilderPrivate::parsePythonType(PyTypeObject *type)
for (Py_ssize_t i = 0; i < basesCount; ++i) {
auto baseType = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(mro, i));
if (baseType != sbkObjTypeF && baseType != baseObjType
- && PyType_IsSubtype(baseType, qObjectType) == 0) {
+ && !PySide::isQObjectDerived(baseType, false)) {
basesToCheck.push_back(baseType);
}
}