diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-10-18 16:19:50 +0200 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-10-23 10:54:32 +0200 |
| commit | 566a2164fea3a7fbeda9307ba91ed145b8cc4b52 (patch) | |
| tree | 0979106d054687b397a8ce81f935fc37ef48f538 /sources/pyside6/libpyside/pysidesignal.cpp | |
| parent | a0050803761563b3e7db49dd553c13cfc4802eaa (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.cpp | 18 |
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) |
