summaryrefslogtreecommitdiffstats
path: root/src/xml/dom/qdomhelpers_p.h
Commit message (Collapse)AuthorAgeFilesLines
* QDomDocument: Add a way to enable spacing-only text nodesSona Kurazyan2022-08-041-0/+3
| | | | | | | | | | | | | | | | Added a parse option that can be passed to setContent(), to specify that spacing-only text nodes must be preserved. [ChangeLog][QtXml][QDomDocument] Spacing-only text nodes can now be preserved by passing the ParseOption::PreserveSpacingOnlyNodes option to setContent(). Fixes: QTBUG-104130 Fixes: QTBUG-89690 Task-number: QTBUG-90003 Change-Id: Id43730ce5b79a856c4b434d1f1d4dd7c49c25f31 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QDom: use QDomDocument::ParseResult for storing the error infoSona Kurazyan2022-08-031-8/+3
| | | | | | | | | | | | And use the new struct as a result type for error getters instead of std::tuple. The line and column numbers, therefore, grow to qsizetype instead of int. As a drive-by, make the getters inline. Change-Id: Iad652063af2c9183cb60f27320c2a800ae28ba36 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Improve QDomDocument::setContent() APISona Kurazyan2022-08-031-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added new setContent() overloads, that: - take parameter of new ParseOptions enum type for specifying the parse options that can be used for enabling namepsace processing and, in future, whitespace-only text nodes, etc. - use ParseResult for returning the information about error message, line and coulmn number, instead of three parameters for each. - use QAnyStringView for a QString input data. To avoid ambiguities when calling setContent() with one argument, removed the default argument for errorString from all the overloads. [ChangeLog][QtXml][QDomDocument] Added new setContent() overloads that allow specifying different parse options through ParseOptions flags. These overloads use a new ParseResult struct for returning the information about an error, and QAnyStringView for passing string input. [ChangeLog][QtXml][QDomDocument][Potentially Source-Incompatible Changes] setContent() overloads that take only one argument now return ParseResult instead of a bool. ParseResult explicitly converts to bool, so the expressions calling setContent() with one argument will continue compiling, if they are contextually convertible to bool. If an implicit convertion is required (e.g. bool b = doc.setConetnt(data)), the result needs to be explicitly converted to bool first (e.g. bool b = bool(doc.setConetnt(data)). Task-number: QTBUG-104507 Change-Id: If6a78f8c9b1458f0e3ae719bfd3703a0b965449c Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Add QDom internalSubset implementationYe ShanShan2022-06-231-0/+3
| | | | | | | | | | | | QDom's internalSubset() always returned empty because nothing actually set the internal data member it returns. When parsing the DECLTYPE, extract the internal subset and save it to the doctype()'s member when present. Pick-to: 5.15 6.2 6.3 6.4 Fixes: QTBUG-53661 Change-Id: I6e41ff8b914381168246073b3289d82205b1c255 Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* Use SPDX license identifiersLucie Gérard2022-05-161-38/+2
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Make sure all qtbase private headers include at least one otherThiago Macieira2022-02-241-2/+2
| | | | | | | | | | See script in qtbase/util/includeprivate for the rules. Since these files are being touched anyway, I also ran the updatecopyright.pl script too. Change-Id: Ib056b47dde3341ef9a52ffff13ef677e471674b6 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Remove leftovers for supporting SAX-based implenentation of QDomDocumentSona Kurazyan2021-11-261-35/+2
| | | | | | | | | | | | | | | | QXmlDocumentLocator was introduced, so that QDomBuilder can work with both QXmlStreamReader and QXmlInputSource. It had two subclasses - QDomDocumentLocator and QSAXDocumentLocator, to allow getting line and column numbers while parsing, depending on the implementation. QSAXDocumentLocator was removed when removing SAX-based implementation (79e0374143ab385cb12a17443e91c8eb9d2f3a4b), and now it doesn't make sense to keep QXmlDocumentLocator/QDomDocumentLocator, we can get line and column numbers form QXmlStreamReader directly. Change-Id: I75f4a776472ee31ddc3685a999f356be9bf47ac5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Remove the SAX parser from QtXmlLars Knoll2020-09-151-92/+0
| | | | | | | | It has been deprecated and will live in qt5compat from now on. Fixes: QTBUG-86480 Change-Id: I3744c7cee058d51d0fce633a174ab1a0f9235d2c Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
* Deprecate SAX classes in Qt XMLSona Kurazyan2020-01-061-0/+23
| | | | | | | | | | | | | | | | | Deprecated the SAX classes and disabled or replaced their uses in tests if applicable. Removed the saxbookmarks example, no point in keeping examples for the deprecated code. [ChangeLog][QtXml] SAX classes are now deprecated. Use QXmlStreamReader, QXmlStreamWriter in QtCore instead. Task-number: QTBUG-76177 Change-Id: Ic171d62fa0527b0f36f94cf09a69586092269957 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Port QDomDocument to QXmlStreamReaderSona Kurazyan2019-11-261-0/+42
| | | | | | | | | | | | Reimplement QDomDocument using QXmlStreamReader and switch to the new implementation starting from Qt 6. The changes in the behavior are reflected in tests: some test cases which were marked as "expected to fail" are now passing. Task-number: QTBUG-76178 Change-Id: I5ace2f13c036a9a778de922b47a1ce35957ce5f6 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Move out the reusable part of QDomHandler to a new classSona Kurazyan2019-11-071-9/+81
| | | | | | | | | | | QDomHandler implements methods for building the DOM tree. These methods can be reused also in the new QXmlStreamReader-based implementation. They are moved to a new QDomBuilder class and QDomHandler become a wrapper around it. Task-number: QTBUG-76178 Change-Id: I01956c209ae253b69c23f20d90a5befe7b5329a0 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Move the private and internal APIs of QDom to new filesSona Kurazyan2019-11-011-0/+121
qdom.cpp is too big, move the private classes and internal classes to new files to make the maintenance and reviews for the upcoming changes easier. Task-number: QTBUG-76178 Change-Id: Ibe83bf9104e000d405a07653f4278083e2da648e Reviewed-by: Kai Koehne <kai.koehne@qt.io>