aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/libpyside/qobjectconnect.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside6/libpyside/qobjectconnect.cpp')
-rw-r--r--sources/pyside6/libpyside/qobjectconnect.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/sources/pyside6/libpyside/qobjectconnect.cpp b/sources/pyside6/libpyside/qobjectconnect.cpp
index e27827ce4..f3c420768 100644
--- a/sources/pyside6/libpyside/qobjectconnect.cpp
+++ b/sources/pyside6/libpyside/qobjectconnect.cpp
@@ -336,4 +336,22 @@ bool qobjectDisconnectCallback(QObject *source, const char *signal, PyObject *ca
return true;
}
+bool callConnect(PyObject *self, const char *signal, PyObject *argument)
+{
+ using Shiboken::AutoDecRef;
+
+ if (PyObject_TypeCheck(argument, PySideSignalInstance_TypeF()) == 0) {
+ AutoDecRef result(PyObject_CallMethod(self, "connect", "OsO", self, signal, argument));
+ return !result.isNull();
+ }
+
+ // Connecting signal to signal
+ auto *signalInstance = reinterpret_cast<PySideSignalInstance *>(argument);
+ AutoDecRef signalSignature(Shiboken::String::fromFormat("2%s", PySide::Signal::getSignature(signalInstance)));
+ AutoDecRef result(PyObject_CallMethod(self, "connect", "OsOO", self, signal,
+ PySide::Signal::getObject(signalInstance),
+ signalSignature.object()));
+ return !result.isNull();
+}
+
} // namespace PySide