Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside6/libpyside/pysidevariantutils.cpp')
-rw-r--r--sources/pyside6/libpyside/pysidevariantutils.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/sources/pyside6/libpyside/pysidevariantutils.cpp b/sources/pyside6/libpyside/pysidevariantutils.cpp
index 7dbfb3afc..729557919 100644
--- a/sources/pyside6/libpyside/pysidevariantutils.cpp
+++ b/sources/pyside6/libpyside/pysidevariantutils.cpp
@@ -125,8 +125,12 @@ QMetaType resolveMetaType(PyTypeObject *type)
// PYSIDE-1887, PYSIDE-86: Skip QObject base class of QGraphicsObject;
// it needs to use always QGraphicsItem as a QVariant type for
// QGraphicsItem::itemChange() to work.
- if (qstrcmp(typeName, "QGraphicsObject*") == 0)
- ++i;
+ if (qstrcmp(typeName, "QGraphicsObject*") == 0 && size > 1) {
+ auto *firstBaseType = reinterpret_cast<PyTypeObject *>(PyTuple_GetItem(type->tp_bases, 0));
+ const char *firstBaseTypeName = Shiboken::ObjectType::getOriginalName(firstBaseType);
+ if (firstBaseTypeName != nullptr && qstrcmp(firstBaseTypeName, "QObject*") == 0)
+ ++i;
+ }
for ( ; i < size; ++i) {
auto baseType = reinterpret_cast<PyTypeObject *>(PyTuple_GetItem(type->tp_bases, i));
const QMetaType derived = resolveMetaType(baseType);