diff options
author | Ece Cinucen <[email protected]> | 2025-05-21 16:44:43 +0200 |
---|---|---|
committer | Ece Cinucen <[email protected]> | 2025-05-24 02:57:16 +0300 |
commit | a2936d1f2c15d7ed6c5b357cd811297f3899197a (patch) | |
tree | 4eda396e3854268cafb1d54711e57e55940a57ff | |
parent | a5a1dc4775630300fe07feb23ce87f06664e4427 (diff) |
- 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.py | 9 | ||||
-rw-r--r-- | sources/pyside6/PySide6/QtXml/typesystem_xml.xml | 4 | ||||
-rw-r--r-- | sources/pyside6/tests/QtXml/qdomdocument_test.py | 23 |
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&,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&@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') |