diff options
| -rw-r--r-- | sources/pyside6/PySide6/glue/qtcore.cpp | 6 | ||||
| -rw-r--r-- | sources/pyside6/libpyside/pyside.cpp | 6 | ||||
| -rw-r--r-- | sources/pyside6/libpyside/pysideutils.h | 8 |
3 files changed, 14 insertions, 6 deletions
diff --git a/sources/pyside6/PySide6/glue/qtcore.cpp b/sources/pyside6/PySide6/glue/qtcore.cpp index 8f1a6bb21..484b4d119 100644 --- a/sources/pyside6/PySide6/glue/qtcore.cpp +++ b/sources/pyside6/PySide6/glue/qtcore.cpp @@ -1416,13 +1416,11 @@ return PyLong_FromUnsignedLong(%in); // @snippet return-pylong-quintptr // @snippet return-pyunicode -QByteArray ba = %in.toUtf8(); -return PyUnicode_FromStringAndSize(ba.constData(), ba.size()); +return PySide::qStringToPyUnicode(%in); // @snippet return-pyunicode // @snippet return-pyunicode-from-qanystringview -QByteArray ba = %in.toString().toUtf8(); -return PyUnicode_FromStringAndSize(ba.constData(), ba.size()); +return PySide::qStringToPyUnicode(%in.toString()); // @snippet return-pyunicode-from-qanystringview // @snippet return-pyunicode-qchar diff --git a/sources/pyside6/libpyside/pyside.cpp b/sources/pyside6/libpyside/pyside.cpp index 4abb2da98..16afb832e 100644 --- a/sources/pyside6/libpyside/pyside.cpp +++ b/sources/pyside6/libpyside/pyside.cpp @@ -722,6 +722,12 @@ QString pyUnicodeToQString(PyObject *str) return QString::fromUcs4(reinterpret_cast<const char32_t *>(data), len); } +PyObject *qStringToPyUnicode(QStringView s) +{ + const QByteArray ba = s.toUtf8(); + return PyUnicode_FromStringAndSize(ba.constData(), ba.size()); +} + // Inspired by Shiboken::String::toCString; QString pyStringToQString(PyObject *str) { diff --git a/sources/pyside6/libpyside/pysideutils.h b/sources/pyside6/libpyside/pysideutils.h index 9a2938906..e1c7397d6 100644 --- a/sources/pyside6/libpyside/pysideutils.h +++ b/sources/pyside6/libpyside/pysideutils.h @@ -47,6 +47,7 @@ #include <QtCore/QtGlobal> QT_FORWARD_DECLARE_CLASS(QString) +QT_FORWARD_DECLARE_CLASS(QStringView) namespace PySide { @@ -57,10 +58,13 @@ namespace PySide /// \return Returns true if self object inherits from class_name, otherwise returns false PYSIDE_API bool inherits(PyTypeObject *self, const char *class_name); -/// Given A PyObject repesenting Unicode data, returns an equivalent QString. +/// Given A PyObject representing Unicode data, returns an equivalent QString. PYSIDE_API QString pyUnicodeToQString(PyObject *str); -/// Given A PyObject repesenting ASCII or Unicode data, returns an equivalent QString. +/// Given a QString, return the PyObject repeesenting Unicode data. +PYSIDE_API PyObject *qStringToPyUnicode(QStringView s); + +/// Given A PyObject representing ASCII or Unicode data, returns an equivalent QString. PYSIDE_API QString pyStringToQString(PyObject *str); /// Provide an efficient, correct PathLike interface. |
