Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2024-07-02 10:38:45 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2024-07-04 11:55:52 +0200
commit08d61b56fa9e901b807b67b07f187e0f54e7551c (patch)
tree2408c7fb6ebb7fcb4267871e9ab0c34c861d1a56 /sources/pyside6/libpyside/qobjectconnect.cpp
parent0e920a721830ca0ed900492756335ceafea1fedd (diff)
libpyside: Fix parameters for connections with contexts
Use the new SignalManager::callPythonMetaMethod() overload introduced by ed8fc457e04f4ead8a3b2a2da797bdc14bd5b210 in PySideQSlotObject to convert the void ** arguments to Python. Amends acab25a3ccb836818e5089b23d40196bc7414b7a. Change-Id: I024bc7f8df7fa65b8b1761f517a99a854de2cec8 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside6/libpyside/qobjectconnect.cpp')
-rw-r--r--sources/pyside6/libpyside/qobjectconnect.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/sources/pyside6/libpyside/qobjectconnect.cpp b/sources/pyside6/libpyside/qobjectconnect.cpp
index d0a1a2c50..e27827ce4 100644
--- a/sources/pyside6/libpyside/qobjectconnect.cpp
+++ b/sources/pyside6/libpyside/qobjectconnect.cpp
@@ -282,7 +282,10 @@ QMetaObject::Connection qobjectConnectCallback(QObject *source, const char *sign
PySide::SignalManager &signalManager = PySide::SignalManager::instance();
- auto *slotObject = new PySideQSlotObject(callback);
+ const QMetaMethod signalMethod = source->metaObject()->method(signalIndex);
+ auto *slotObject = new PySideQSlotObject(callback,
+ signalMethod.parameterTypes(),
+ signalMethod.typeName());
QMetaObject::Connection connection{};
Py_BEGIN_ALLOW_THREADS // PYSIDE-2367, prevent threading deadlocks with connectNotify()
@@ -298,7 +301,6 @@ QMetaObject::Connection qobjectConnectCallback(QObject *source, const char *sign
if (receiver.usingGlobalReceiver)
signalManager.notifyGlobalReceiver(receiver.receiver);
- const QMetaMethod signalMethod = source->metaObject()->method(signalIndex);
static_cast<FriendlyQObject *>(source)->connectNotify(signalMethod);
return connection;
}