summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAxel Spoerl <[email protected]>2023-04-21 13:36:29 +0200
committerAxel Spoerl <[email protected]>2023-04-26 12:46:06 +0200
commit55a51e19091714a0ce7af3bfe0d06d138bc04bca (patch)
treeab3e5080ec508cb99426257c44b6021d058e8a9a
parentb85a9d0ee16e3bdc817eb1e8a8f85026e631b401 (diff)
Implement QXmlStreamReader::hasStandaloneDeclaration()
This patch implements a public getter for the hasStandalone attribute. It returns true, if standalone has been explicitly declared in an XML header and false otherwise. As this is no longer necessary it removes accessing QXmlStreamPrivate from QDomParser. [ChangeLog][QtCore][QXmlStreamReader] added hasStandaloneDeclaration() Change-Id: Iaaa0a728a6f7186e40637186077f7b49c112f7a9 Reviewed-by: Volker Hilsheimer <[email protected]> Reviewed-by: Yuhang Zhao <[email protected]>
-rw-r--r--src/corelib/serialization/qxmlstream.cpp17
-rw-r--r--src/corelib/serialization/qxmlstream.h1
-rw-r--r--src/corelib/serialization/qxmlstream_p.h2
-rw-r--r--src/xml/dom/qdomhelpers.cpp3
4 files changed, 19 insertions, 4 deletions
diff --git a/src/corelib/serialization/qxmlstream.cpp b/src/corelib/serialization/qxmlstream.cpp
index 5f536d05719..21590135dde 100644
--- a/src/corelib/serialization/qxmlstream.cpp
+++ b/src/corelib/serialization/qxmlstream.cpp
@@ -2692,6 +2692,8 @@ bool QXmlStreamReader::isCDATA() const
XML declaration; otherwise returns \c false.
If no XML declaration has been parsed, this function returns \c false.
+
+ \sa hasStandaloneDeclaration()
*/
bool QXmlStreamReader::isStandaloneDocument() const
{
@@ -2699,6 +2701,21 @@ bool QXmlStreamReader::isStandaloneDocument() const
return d->standalone;
}
+/*!
+ \since 6.6
+
+ Returns \c true if this document has an explicit standalone
+ declaration (can be 'yes' or 'no'); otherwise returns \c false;
+
+ If no XML declaration has been parsed, this function returns \c false.
+
+ \sa isStandaloneDocument()
+ */
+bool QXmlStreamReader::hasStandaloneDeclaration() const
+{
+ Q_D(const QXmlStreamReader);
+ return d->hasStandalone;
+}
/*!
\since 4.4
diff --git a/src/corelib/serialization/qxmlstream.h b/src/corelib/serialization/qxmlstream.h
index 230a45f6836..fc0742debce 100644
--- a/src/corelib/serialization/qxmlstream.h
+++ b/src/corelib/serialization/qxmlstream.h
@@ -246,6 +246,7 @@ public:
inline bool isProcessingInstruction() const { return tokenType() == ProcessingInstruction; }
bool isStandaloneDocument() const;
+ bool hasStandaloneDeclaration() const;
QStringView documentVersion() const;
QStringView documentEncoding() const;
diff --git a/src/corelib/serialization/qxmlstream_p.h b/src/corelib/serialization/qxmlstream_p.h
index ffa49f8c642..b6e54aad893 100644
--- a/src/corelib/serialization/qxmlstream_p.h
+++ b/src/corelib/serialization/qxmlstream_p.h
@@ -510,8 +510,6 @@ public:
QXmlStreamEntityResolver *entityResolver;
- static QXmlStreamReaderPrivate *get(QXmlStreamReader *q) { return q->d_func(); }
-
private:
/*! \internal
Never assign to variable type directly. Instead use this function.
diff --git a/src/xml/dom/qdomhelpers.cpp b/src/xml/dom/qdomhelpers.cpp
index 48869907f8f..0649e0c75d8 100644
--- a/src/xml/dom/qdomhelpers.cpp
+++ b/src/xml/dom/qdomhelpers.cpp
@@ -266,8 +266,7 @@ bool QDomParser::parseProlog()
value += u" standalone='yes'"_s;
} else {
// Add the standalone attribute only if it was specified
- QXmlStreamReaderPrivate *priv = QXmlStreamReaderPrivate::get(reader);
- if (priv->hasStandalone)
+ if (reader->hasStandaloneDeclaration())
value += u" standalone='no'"_s;
}