aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-10-18 16:19:50 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-10-23 17:24:40 +0000
commit7715b2910d87c101b064a4bbb6e0a7b769d82284 (patch)
tree35ab77d672d4440107e150386a77953446d435e4
parentbf37f4051502fb5ff4516128d17d635f48614f25 (diff)
Add a separate __str__ function for Signal
List all signatures, separated by ';'. Fixes: PYSIDE-2493 Change-Id: I3c7e3367c340ab142a388a3991dc08774b6c7075 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 566a2164fea3a7fbeda9307ba91ed145b8cc4b52) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 1a41957a43b00284d12f719bb06366f0dfc267aa)
-rw-r--r--sources/pyside6/libpyside/pysidesignal.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/sources/pyside6/libpyside/pysidesignal.cpp b/sources/pyside6/libpyside/pysidesignal.cpp
index e92ad6192..972647168 100644
--- a/sources/pyside6/libpyside/pysidesignal.cpp
+++ b/sources/pyside6/libpyside/pysidesignal.cpp
@@ -25,6 +25,8 @@
#define QT_SIGNAL_SENTINEL '2'
+using namespace Qt::StringLiterals;
+
QDebug operator<<(QDebug debug, const PySideSignalData::Signature &s)
{
QDebugStateSaver saver(debug);
@@ -305,9 +307,21 @@ static PyObject *signalGetItem(PyObject *obSelf, PyObject *key)
return Shiboken::String::fromCString(sig.constData());
}
-static PyObject *signalToString(PyObject *self)
+static PyObject *signalToString(PyObject *obSelf)
{
- return signalGetItem(self, nullptr);
+ auto self = reinterpret_cast<PySideSignal *>(obSelf);
+ QByteArray result;
+ if (self->data == nullptr || self->data->signatures.isEmpty()) {
+ result = "<invalid>"_ba;
+ } else {
+ for (const auto &signature : std::as_const(self->data->signatures)) {
+ if (!result.isEmpty())
+ result += "; "_ba;
+ result += PySide::Signal::buildSignature(self->data->signalName,
+ signature.signature);
+ }
+ }
+ return Shiboken::String::fromCString(result.constData());
}
static PyObject *signalGetAttr(PyObject *obSelf, PyObject *name)