diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2024-07-03 09:41:28 +0200 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2024-07-04 15:30:52 +0200 |
| commit | 058444c9d14062f5d8b117e91ee0aa5ed9ce6c27 (patch) | |
| tree | 6144735d8b7cc98d3fa79c06381d2af0f28e8998 /sources/pyside6/libpyside/qobjectconnect.cpp | |
| parent | 1864c79821515f36cf1ce7d478ea9bf6436602b0 (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.cpp | 18 |
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 |
