aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/PySide6
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2021-11-05 13:45:32 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2021-11-05 19:43:51 +0100
commita7a8138bae00ef1aecafed04a8ac265a9c6f07ff (patch)
treeb4fbb8a40df7a660499ca7ce41758f6fb98dc203 /sources/pyside6/PySide6
parent3d903c91f6e00e8cff75e7cc8a0619008dd6c59f (diff)
PySide6: Add a __repr__ method for QQmlError
This is handy for debugging QML. Pick-to: 6.2 Change-Id: Ic9c98a27377416debaa41ab1f95b3b10db4f143d Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside6/PySide6')
-rw-r--r--sources/pyside6/PySide6/QtQml/typesystem_qml.xml6
-rw-r--r--sources/pyside6/PySide6/glue/qtqml.cpp5
2 files changed, 10 insertions, 1 deletions
diff --git a/sources/pyside6/PySide6/QtQml/typesystem_qml.xml b/sources/pyside6/PySide6/QtQml/typesystem_qml.xml
index b58b18ee7..340869df1 100644
--- a/sources/pyside6/PySide6/QtQml/typesystem_qml.xml
+++ b/sources/pyside6/PySide6/QtQml/typesystem_qml.xml
@@ -179,7 +179,11 @@
<modify-function signature="QQmlComponent(QQmlEngine*,QUrl,QQmlComponent::CompilationMode,QObject*)" allow-thread="yes"/>
</object-type>
<object-type name="QQmlContext"/>
- <value-type name="QQmlError"/>
+ <value-type name="QQmlError">
+ <add-function signature="__repr__" return-type="PyObject*">
+ <inject-code class="target" position="beginning" file="../glue/qtqml.cpp" snippet="qmlerrror-repr"/>
+ </add-function>
+ </value-type>
<object-type name="QQmlDebuggingEnabler">
<enum-type name="StartMode"/>
</object-type>
diff --git a/sources/pyside6/PySide6/glue/qtqml.cpp b/sources/pyside6/PySide6/glue/qtqml.cpp
index 99a1c441a..a0a780a07 100644
--- a/sources/pyside6/PySide6/glue/qtqml.cpp
+++ b/sources/pyside6/PySide6/glue/qtqml.cpp
@@ -37,6 +37,11 @@
**
****************************************************************************/
+// @snippet qmlerrror-repr
+const QByteArray message = %CPPSELF.toString().toUtf8();
+%PYARG_0 = Shiboken::String::fromCString(message.constData());
+// @snippet qmlerrror-repr
+
// @snippet qmlregistertype
int %0 = PySide::qmlRegisterType(%ARGUMENT_NAMES);
%PYARG_0 = %CONVERTTOPYTHON[int](%0);