aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEce Cinucen <[email protected]>2025-05-21 16:44:43 +0200
committerEce Cinucen <[email protected]>2025-05-24 02:57:16 +0300
commita2936d1f2c15d7ed6c5b357cd811297f3899197a (patch)
tree4eda396e3854268cafb1d54711e57e55940a57ff
parenta5a1dc4775630300fe07feb23ce87f06664e4427 (diff)
Add overload for QDomDocument.setContentHEADdev
- Updated type system to add the missing overloaded function with QByteArray and ParseOptions. - Deprecated use of QDomDocument.setContent fixed on QtXml test cases and dombookmarks example. Change-Id: I78b5c2f3be44362c0b871009bcf6c305b3a77798 Reviewed-by: Friedemann Kleint <[email protected]>
-rw-r--r--examples/xml/dombookmarks/dombookmarks.py9
-rw-r--r--sources/pyside6/PySide6/QtXml/typesystem_xml.xml4
-rw-r--r--sources/pyside6/tests/QtXml/qdomdocument_test.py23
3 files changed, 21 insertions, 15 deletions
diff --git a/examples/xml/dombookmarks/dombookmarks.py b/examples/xml/dombookmarks/dombookmarks.py
index 4f778acbd..f02251849 100644
--- a/examples/xml/dombookmarks/dombookmarks.py
+++ b/examples/xml/dombookmarks/dombookmarks.py
@@ -112,11 +112,12 @@ class XbelTree(QTreeWidget):
self._bookmark_icon.addPixmap(style.standardPixmap(QStyle.StandardPixmap.SP_FileIcon))
def read(self, device):
- ok, errorStr, errorLine, errorColumn = self._dom_document.setContent(device, True)
- if not ok:
+ result = self._dom_document.setContent(device,
+ QDomDocument.ParseOption.UseNamespaceProcessing)
+ if not result:
QMessageBox.information(self.window(), "DOM Bookmarks",
- f"Parse error at line {errorLine}, "
- f"column {errorColumn}:\n{errorStr}")
+ f"Parse error at line {result.errorLine}, "
+ f"column {result.errorColumn}:\n{result.errorMessage}")
return False
root = self._dom_document.documentElement()
diff --git a/sources/pyside6/PySide6/QtXml/typesystem_xml.xml b/sources/pyside6/PySide6/QtXml/typesystem_xml.xml
index 089978b6d..93d3c1f56 100644
--- a/sources/pyside6/PySide6/QtXml/typesystem_xml.xml
+++ b/sources/pyside6/PySide6/QtXml/typesystem_xml.xml
@@ -20,7 +20,7 @@
<enum-type name="ParseOption" flags="ParseOptions" since="6.5"/>
<!-- will be replaced in inject code -->
- <value-type name="ParseResult"/>
+ <value-type name="ParseResult" operator-bool="yes"/>
<modify-function signature="setContent(const QByteArray&amp;,bool,QString*,int*,int*)">
<modify-argument index="3">
@@ -130,6 +130,8 @@
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtxml.cpp" snippet="qdomdocument-setcontent" />
</modify-function>
+ <declare-function signature="setContent(const QByteArray&amp;@data@, QDomDocument::ParseOptions@options@=QDomDocument::ParseOption::Default)"
+ return-type="QDomDocument::ParseResult" since="6.8" />
</value-type>
<value-type name="QDomDocumentFragment"/>
diff --git a/sources/pyside6/tests/QtXml/qdomdocument_test.py b/sources/pyside6/tests/QtXml/qdomdocument_test.py
index 8fe4f6e17..b321b1bdf 100644
--- a/sources/pyside6/tests/QtXml/qdomdocument_test.py
+++ b/sources/pyside6/tests/QtXml/qdomdocument_test.py
@@ -44,18 +44,20 @@ class QDomDocumentTest(unittest.TestCase):
def testQDomDocumentSetContentWithBadXmlData(self):
'''Sets invalid xml as the QDomDocument contents.'''
- ok, errorStr, errorLine, errorColumn = self.dom.setContent(self.badXmlData, True)
- self.assertFalse(ok)
- self.assertEqual(errorStr, 'Opening and ending tag mismatch.')
- self.assertEqual(errorLine, 4)
+ parseResult = self.dom.setContent(self.badXmlData,
+ QDomDocument.ParseOption.UseNamespaceProcessing)
+ self.assertFalse(parseResult)
+ self.assertEqual(parseResult.errorMessage, 'Opening and ending tag mismatch.')
+ self.assertEqual(parseResult.errorLine, 4)
def testQDomDocumentSetContentWithGoodXmlData(self):
'''Sets valid xml as the QDomDocument contents.'''
- ok, errorStr, errorLine, errorColumn = self.dom.setContent(self.goodXmlData, True)
- self.assertTrue(ok)
- self.assertEqual(errorStr, '')
- self.assertEqual(errorLine, 0)
- self.assertEqual(errorColumn, 0)
+ parseResult = self.dom.setContent(self.goodXmlData,
+ QDomDocument.ParseOption.UseNamespaceProcessing)
+ self.assertTrue(parseResult)
+ self.assertEqual(parseResult.errorMessage, '')
+ self.assertEqual(parseResult.errorLine, 0)
+ self.assertEqual(parseResult.errorColumn, 0)
def testQDomDocumentData(self):
'''Checks the QDomDocument elements for the valid xml contents.'''
@@ -66,7 +68,8 @@ class QDomDocumentTest(unittest.TestCase):
self.assertTrue(element.hasAttribute(attribute))
self.assertEqual(element.attribute(attribute), value)
- ok, errorStr, errorLine, errorColumn = self.dom.setContent(self.goodXmlData, True)
+ parseResult = self.dom.setContent(self.goodXmlData, # noqa F:841
+ QDomDocument.ParseOption.UseNamespaceProcessing)
root = self.dom.documentElement()
self.assertEqual(root.tagName(), 'typesystem')
checkAttribute(root, 'package', 'PySide6.QtXml')