aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2021-11-05 13:45:32 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-11-05 20:47:04 +0000
commit482ee0ce294d77aa8fbb79f2198c28ba500bcc54 (patch)
tree503f849acae8a2ab0a7e01c7892ed6f1353569f8
parent7996c2a74966ab2665c455d35efa2aa938da6ac8 (diff)
PySide6: Add a __repr__ method for QQmlError
This is handy for debugging QML. Change-Id: Ic9c98a27377416debaa41ab1f95b3b10db4f143d Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit a7a8138bae00ef1aecafed04a8ac265a9c6f07ff) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-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 901240266..b59a6cf00 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);