aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/libpyside/qobjectconnect.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2024-07-03 09:41:28 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2024-07-04 15:30:52 +0200
commit058444c9d14062f5d8b117e91ee0aa5ed9ce6c27 (patch)
tree6144735d8b7cc98d3fa79c06381d2af0f28e8998 /sources/pyside6/libpyside/qobjectconnect.cpp
parent1864c79821515f36cf1ce7d478ea9bf6436602b0 (diff)
Add QMessageBox.open() with a slot
Extract a helper function from QTimer::singleShot() implementation and use that to implement it. Fixes: PYSIDE-2805 Change-Id: Ib758d355b36c598052cfa495b53d7da423999976 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
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