diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-04-04 23:09:14 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-04-05 14:25:08 +0200 |
commit | e15bccb0e1f40b959801860f14578c0d77ba8176 (patch) | |
tree | 861471140bb32eb44cc915074a1d6589515a4f8c /sources/shiboken2/generator/shiboken2/shibokengenerator.cpp | |
parent | 11126a9811b21886acdac1e484a92044d7ffd5a2 (diff) |
shiboken: Fix Qt properties not working in classes inheriting QObject
The fixes for PYSIDE-803 caused setattro methods to be generated
for many classes, resulting in QObject's setattro method no longer
being called.
Generate property code in each class inheriting QObject.
Task-number: PYSIDE-803
Fixes: PYSIDE-1255
Change-Id: I56f52fb43c4ddc77914090ac122776050354ddbe
Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken2/generator/shiboken2/shibokengenerator.cpp')
-rw-r--r-- | sources/shiboken2/generator/shiboken2/shibokengenerator.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp b/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp index fbd3c314b..a712c3ebb 100644 --- a/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp +++ b/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp @@ -2219,6 +2219,13 @@ ShibokenGenerator::AttroCheck ShibokenGenerator::checkAttroFunctionNeeds(const A result |= AttroCheckFlag::SetattroQObject; if (useOverrideCaching(metaClass)) result |= AttroCheckFlag::SetattroMethodOverride; + // PYSIDE-1255: If setattro is generated for a class inheriting + // QObject, the property code needs to be generated, too. + if ((result & AttroCheckFlag::SetattroMask) != 0 + && !result.testFlag(AttroCheckFlag::SetattroQObject) + && metaClass->isQObject()) { + result |= AttroCheckFlag::SetattroQObject; + } } return result; } |