aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/libpyside/pysidesignal.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-10-18 16:19:50 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2023-10-23 10:54:32 +0200
commit566a2164fea3a7fbeda9307ba91ed145b8cc4b52 (patch)
tree0979106d054687b397a8ce81f935fc37ef48f538 /sources/pyside6/libpyside/pysidesignal.cpp
parenta0050803761563b3e7db49dd553c13cfc4802eaa (diff)
Add a separate __str__ function for Signal
List all signatures, separated by ';'. Pick-to: 6.6 6.5 Fixes: PYSIDE-2493 Change-Id: I3c7e3367c340ab142a388a3991dc08774b6c7075 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside6/libpyside/pysidesignal.cpp')
-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 9dfa04e1a..59b7ae551 100644
--- a/sources/pyside6/libpyside/pysidesignal.cpp
+++ b/sources/pyside6/libpyside/pysidesignal.cpp
@@ -27,6 +27,8 @@
#define QT_SIGNAL_SENTINEL '2'
+using namespace Qt::StringLiterals;
+
QDebug operator<<(QDebug debug, const PySideSignalData::Signature &s)
{
QDebugStateSaver saver(debug);
@@ -320,9 +322,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)