diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-10-31 10:42:28 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-11-01 16:52:29 +0100 |
commit | dfbf935717996dd22e0dcf48f199492bf0935a1f (patch) | |
tree | 27ab1d1864ee73d77d21a9aa149ecf996a6cec82 /sources/pyside6/PySide6/QtCore/typesystem_core_common.xml | |
parent | 669560b5042f141e189abad3f283ab3989253e5a (diff) |
Fix QMetaObject method invocation to accept all of the 10 arguments
Refactor the helper injected into the QMetaObject wrapper code into
helper functions in the QtCore glue code that handle all arguments of
the QMetaObject::invokeMethod() overloads.
Extract a std::function for the actuall call that helps to implement
QMetaMethod::invoke() in a follow-up change.
Pick-to: 6.6
Task-number: PYSIDE-2500
Change-Id: I4f2b509a13d252dad92e388e1dfd607ae3eafcd1
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside6/PySide6/QtCore/typesystem_core_common.xml')
-rw-r--r-- | sources/pyside6/PySide6/QtCore/typesystem_core_common.xml | 51 |
1 files changed, 47 insertions, 4 deletions
diff --git a/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml b/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml index e533b8fdc..411f55149 100644 --- a/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml +++ b/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml @@ -3106,6 +3106,7 @@ <extra-includes> <include file-name="dynamicqmetaobject.h" location="global"/> <include file-name="pysidemetatype.h" location="global"/> + <include file-name="glue/core_snippets_p.h" location="local"/> <include file-name="pysideutils.h" location="global"/> <!-- QString conversion --> </extra-includes> <inject-code class="native" position="beginning" file="../glue/qtcore.cpp" @@ -3118,22 +3119,64 @@ <declare-function signature="operator bool() const" return-type="bool"/> </value-type> <modify-function signature="^invokeMethod\(" allow-thread="yes"/> - <add-function signature="invokeMethod(QObject*@object@,const char *@member@,Qt::ConnectionType@type@,QtCoreHelper::QGenericArgumentHolder@val0@={},QtCoreHelper::QGenericArgumentHolder@val1@={},QtCoreHelper::QGenericArgumentHolder@val2@={})" + <add-function signature="invokeMethod(QObject*@object@,const char *@member@,Qt::ConnectionType@type@, + QtCoreHelper::QGenericArgumentHolder@val0@={}, + QtCoreHelper::QGenericArgumentHolder@val1@={}, + QtCoreHelper::QGenericArgumentHolder@val2@={}, + QtCoreHelper::QGenericArgumentHolder@val3@={}, + QtCoreHelper::QGenericArgumentHolder@val4@={}, + QtCoreHelper::QGenericArgumentHolder@val5@={}, + QtCoreHelper::QGenericArgumentHolder@val6@={}, + QtCoreHelper::QGenericArgumentHolder@val7@={}, + QtCoreHelper::QGenericArgumentHolder@val8@={}, + QtCoreHelper::QGenericArgumentHolder@val9@={})" static="yes" return-type="bool"> <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qmetaobject-invokemethod-conn-type-arg"/> </add-function> - <add-function signature="invokeMethod(QObject*@object@,const char *@member@,QtCoreHelper::QGenericArgumentHolder@val0@={},QtCoreHelper::QGenericArgumentHolder@val1@={},QtCoreHelper::QGenericArgumentHolder@val2@={})" + <add-function signature="invokeMethod(QObject*@object@,const char *@member@, + QtCoreHelper::QGenericArgumentHolder@val0@={}, + QtCoreHelper::QGenericArgumentHolder@val1@={}, + QtCoreHelper::QGenericArgumentHolder@val2@={}, + QtCoreHelper::QGenericArgumentHolder@val3@={}, + QtCoreHelper::QGenericArgumentHolder@val4@={}, + QtCoreHelper::QGenericArgumentHolder@val5@={}, + QtCoreHelper::QGenericArgumentHolder@val6@={}, + QtCoreHelper::QGenericArgumentHolder@val7@={}, + QtCoreHelper::QGenericArgumentHolder@val8@={}, + QtCoreHelper::QGenericArgumentHolder@val9@={})" static="yes" return-type="bool"> <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qmetaobject-invokemethod-arg"/> </add-function> - <add-function signature="invokeMethod(QObject*@object@,const char *@member@,Qt::ConnectionType@type@,QtCoreHelper::QGenericReturnArgumentHolder@ret@,QtCoreHelper::QGenericArgumentHolder@val0@={},QtCoreHelper::QGenericArgumentHolder@val1@={},QtCoreHelper::QGenericArgumentHolder@val2@={})" + <add-function signature="invokeMethod(QObject*@object@,const char *@member@,Qt::ConnectionType@type@, + QtCoreHelper::QGenericReturnArgumentHolder@ret@, + QtCoreHelper::QGenericArgumentHolder@val0@={}, + QtCoreHelper::QGenericArgumentHolder@val1@={}, + QtCoreHelper::QGenericArgumentHolder@val2@={}, + QtCoreHelper::QGenericArgumentHolder@val3@={}, + QtCoreHelper::QGenericArgumentHolder@val4@={}, + QtCoreHelper::QGenericArgumentHolder@val5@={}, + QtCoreHelper::QGenericArgumentHolder@val6@={}, + QtCoreHelper::QGenericArgumentHolder@val7@={}, + QtCoreHelper::QGenericArgumentHolder@val8@={}, + QtCoreHelper::QGenericArgumentHolder@val9@={})" static="yes" return-type="PyObject*"> <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qmetaobject-invokemethod-conn-type-return-arg"/> </add-function> - <add-function signature="invokeMethod(QObject*@object@,const char *@member@,QtCoreHelper::QGenericReturnArgumentHolder@ret@,QtCoreHelper::QGenericArgumentHolder@val0@={},QtCoreHelper::QGenericArgumentHolder@val1@={},QtCoreHelper::QGenericArgumentHolder@val2@={})" + <add-function signature="invokeMethod(QObject*@object@,const char *@member@, + QtCoreHelper::QGenericReturnArgumentHolder@ret@, + QtCoreHelper::QGenericArgumentHolder@val0@={}, + QtCoreHelper::QGenericArgumentHolder@val1@={}, + QtCoreHelper::QGenericArgumentHolder@val2@={}, + QtCoreHelper::QGenericArgumentHolder@val3@={}, + QtCoreHelper::QGenericArgumentHolder@val4@={}, + QtCoreHelper::QGenericArgumentHolder@val5@={}, + QtCoreHelper::QGenericArgumentHolder@val6@={}, + QtCoreHelper::QGenericArgumentHolder@val7@={}, + QtCoreHelper::QGenericArgumentHolder@val8@={}, + QtCoreHelper::QGenericArgumentHolder@val9@={})" static="yes" return-type="PyObject*"> <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qmetaobject-invokemethod-return-arg"/> |