aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/PySide6
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-07-25 14:50:32 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2023-07-26 11:45:32 +0200
commit942768a87eaaf4c0ea6a60a1eda06a7aa93859fc (patch)
treed62d9870d24058334124bd85c4bb2802a0bbe82d /sources/pyside6/PySide6
parent12ba61a242312edb3fe6a19f9f03f578d55336a5 (diff)
PySide6: Add a convenience function for retrieving signal emitters
Task-number: PYSIDE-2384 Change-Id: I38cd611439a882e65f9f3bc6ca47dedd0a4fc66c Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside6/PySide6')
-rw-r--r--sources/pyside6/PySide6/glue/qtcore.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/sources/pyside6/PySide6/glue/qtcore.cpp b/sources/pyside6/PySide6/glue/qtcore.cpp
index 53cf50b22..82d2921e3 100644
--- a/sources/pyside6/PySide6/glue/qtcore.cpp
+++ b/sources/pyside6/PySide6/glue/qtcore.cpp
@@ -1820,12 +1820,10 @@ cptr = new ::%TYPE(%1, %2);
// @snippet qmetamethod-from-signal
auto *signalInst = reinterpret_cast<PySideSignalInstance *>(%PYARG_1);
-PyObject *emitterPyObject = PySide::Signal::getObject(signalInst);
-QObject* emitter = %CONVERTTOCPP[QObject *](emitterPyObject);
-const QByteArray signature = PySide::Signal::getSignature(signalInst);
-const auto *mo = emitter->metaObject();
-const auto index = mo->indexOfSignal(signature.constData());
-const auto result = index != -1 ? mo->method(index) : QMetaMethod{};
+const auto data = PySide::Signal::getEmitterData(signalInst);
+const auto result = data.methodIndex != -1
+ ? data.emitter->metaObject()->method(data.methodIndex)
+ : QMetaMethod{};
%PYARG_0 = %CONVERTTOPYTHON[QMetaMethod](result);
// @snippet qmetamethod-from-signal