diff options
Diffstat (limited to 'src/xml/dom/qdom.h')
-rw-r--r-- | src/xml/dom/qdom.h | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/src/xml/dom/qdom.h b/src/xml/dom/qdom.h index 377ce9bd27..f4c0da1b16 100644 --- a/src/xml/dom/qdom.h +++ b/src/xml/dom/qdom.h @@ -265,6 +265,21 @@ private: class Q_XML_EXPORT QDomDocument : public QDomNode { public: + enum class ParseOption { + Default = 0x00, + UseNamespaceProcessing = 0x01, + }; + Q_DECLARE_FLAGS(ParseOptions, ParseOption) + + struct ParseResult + { + QString errorMessage; + qsizetype errorLine = 0; + qsizetype errorColumn = 0; + + explicit operator bool() const noexcept { return errorMessage.isEmpty(); } + }; + QDomDocument(); explicit QDomDocument(const QString& name); explicit QDomDocument(const QDomDocumentType& doctype); @@ -300,17 +315,26 @@ public: bool setContent(const QByteArray &text, bool namespaceProcessing, QString *errorMsg = nullptr, int *errorLine = nullptr, int *errorColumn = nullptr); bool setContent(const QString &text, bool namespaceProcessing, QString *errorMsg = nullptr, int *errorLine = nullptr, int *errorColumn = nullptr); bool setContent(QIODevice *dev, bool namespaceProcessing, QString *errorMsg = nullptr, int *errorLine = nullptr, int *errorColumn = nullptr); - bool setContent(const QByteArray &text, QString *errorMsg = nullptr, int *errorLine = nullptr, int *errorColumn = nullptr); - bool setContent(const QString &text, QString *errorMsg = nullptr, int *errorLine = nullptr, int *errorColumn = nullptr); - bool setContent(QIODevice *dev, QString *errorMsg = nullptr, int *errorLine = nullptr, int *errorColumn = nullptr); + bool setContent(const QByteArray &text, QString *errorMsg, int *errorLine = nullptr, int *errorColumn = nullptr); + bool setContent(const QString &text, QString *errorMsg, int *errorLine = nullptr, int *errorColumn = nullptr); + bool setContent(QIODevice *dev, QString *errorMsg, int *errorLine = nullptr, int *errorColumn = nullptr); bool setContent(QXmlStreamReader *reader, bool namespaceProcessing, QString *errorMsg = nullptr, int *errorLine = nullptr, int *errorColumn = nullptr); + Q_WEAK_OVERLOAD + ParseResult setContent(const QByteArray &data, ParseOptions options = ParseOption::Default) + { return setContentImpl(data, options); } + ParseResult setContent(QAnyStringView data, ParseOptions options = ParseOption::Default); + ParseResult setContent(QIODevice *device, ParseOptions options = ParseOption::Default); + ParseResult setContent(QXmlStreamReader *reader, ParseOptions options = ParseOption::Default); + // Qt extensions QString toString(int = 1) const; QByteArray toByteArray(int = 1) const; private: + ParseResult setContentImpl(const QByteArray &data, ParseOptions options); + QDomDocument(QDomDocumentPrivate*); friend class QDomNode; |