summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/corelib/serialization/convert/xmlconverter.cpp8
-rw-r--r--examples/embedded/flightinfo/flightinfo.cpp26
-rw-r--r--examples/network/googlesuggest/googlesuggest.cpp4
-rw-r--r--examples/widgets/animation/sub-attaq/graphicsscene.cpp8
-rw-r--r--examples/xml/rsslisting/rsslisting.cpp4
-rw-r--r--src/corelib/mimetypes/qmimeprovider.cpp4
-rw-r--r--src/corelib/mimetypes/qmimetypeparser.cpp16
-rw-r--r--src/corelib/mimetypes/qmimetypeparser_p.h2
-rw-r--r--src/corelib/serialization/qxmlstream.cpp94
-rw-r--r--src/corelib/serialization/qxmlstream.h69
-rw-r--r--src/tools/qvkgen/qvkgen.cpp4
-rw-r--r--src/tools/uic/uic.cpp2
-rw-r--r--src/xml/dom/qdomhelpers.cpp47
13 files changed, 138 insertions, 150 deletions
diff --git a/examples/corelib/serialization/convert/xmlconverter.cpp b/examples/corelib/serialization/convert/xmlconverter.cpp
index 42cb10100a..87ba9b5156 100644
--- a/examples/corelib/serialization/convert/xmlconverter.cpp
+++ b/examples/corelib/serialization/convert/xmlconverter.cpp
@@ -195,7 +195,7 @@ static QVariant mapFromXml(QXmlStreamReader &xml, Converter::Options options)
static QVariant variantFromXml(QXmlStreamReader &xml, Converter::Options options)
{
- QStringRef name = xml.name();
+ QStringView name = xml.name();
if (name == QLatin1String("list"))
return listFromXml(xml, options);
if (name == QLatin1String("map"))
@@ -207,7 +207,7 @@ static QVariant variantFromXml(QXmlStreamReader &xml, Converter::Options options
}
QXmlStreamAttributes attrs = xml.attributes();
- QStringRef type = attrs.value(QLatin1String("type"));
+ QStringView type = attrs.value(QLatin1String("type"));
forever {
xml.readNext();
@@ -222,7 +222,7 @@ static QVariant variantFromXml(QXmlStreamReader &xml, Converter::Options options
exit(EXIT_FAILURE);
}
- QStringRef text = xml.text();
+ QStringView text = xml.text();
if (!xml.isCDATA())
text = text.trimmed();
@@ -247,7 +247,7 @@ static QVariant variantFromXml(QXmlStreamReader &xml, Converter::Options options
}
} else if (type == QLatin1String("bytes")) {
QByteArray data = text.toLatin1();
- QStringRef encoding = attrs.value("encoding");
+ QStringView encoding = attrs.value("encoding");
if (encoding == QLatin1String("base64url")) {
result = QByteArray::fromBase64(data, QByteArray::Base64UrlEncoding);
} else if (encoding == QLatin1String("hex")) {
diff --git a/examples/embedded/flightinfo/flightinfo.cpp b/examples/embedded/flightinfo/flightinfo.cpp
index f7df368dd7..0f8dfb5b6a 100644
--- a/examples/embedded/flightinfo/flightinfo.cpp
+++ b/examples/embedded/flightinfo/flightinfo.cpp
@@ -265,20 +265,20 @@ private:
xml.readNext();
if (xml.tokenType() == QXmlStreamReader::StartElement) {
- QStringRef className = xml.attributes().value("class");
- inFlightName |= xml.name() == "h1";
- inFlightStatus |= className == "FlightDetailHeaderStatus";
- inFlightMap |= className == "flightMap";
- if (xml.name() == "td" && !className.isEmpty()) {
- if (className.contains("fieldTitle")) {
+ auto className = xml.attributes().value("class");
+ inFlightName |= xml.name() == u"h1";
+ inFlightStatus |= className == u"FlightDetailHeaderStatus";
+ inFlightMap |= className == u"flightMap";
+ if (xml.name() == u"td" && !className.isEmpty()) {
+ if (className.contains(u"fieldTitle")) {
inFieldName = true;
fieldNames += QString();
fieldValues += QString();
}
- if (className.contains("fieldValue"))
+ if (className.contains(u"fieldValue"))
inFieldValue = true;
}
- if (xml.name() == "img" && inFlightMap) {
+ if (xml.name() == u"img" && inFlightMap) {
const QByteArray encoded
= ("http://mobile.flightview.com/" % xml.attributes().value("src")).toLatin1();
QUrl url = QUrl::fromPercentEncoding(encoded);
@@ -287,11 +287,11 @@ private:
}
if (xml.tokenType() == QXmlStreamReader::EndElement) {
- inFlightName &= xml.name() != "h1";
- inFlightStatus &= xml.name() != "div";
- inFlightMap &= xml.name() != "div";
- inFieldName &= xml.name() != "td";
- inFieldValue &= xml.name() != "td";
+ inFlightName &= xml.name() != u"h1";
+ inFlightStatus &= xml.name() != u"div";
+ inFlightMap &= xml.name() != u"div";
+ inFieldName &= xml.name() != u"td";
+ inFieldValue &= xml.name() != u"td";
}
if (xml.tokenType() == QXmlStreamReader::Characters) {
diff --git a/examples/network/googlesuggest/googlesuggest.cpp b/examples/network/googlesuggest/googlesuggest.cpp
index 04a60103b2..b7b6d3ab62 100644
--- a/examples/network/googlesuggest/googlesuggest.cpp
+++ b/examples/network/googlesuggest/googlesuggest.cpp
@@ -217,8 +217,8 @@ void GSuggestCompletion::handleNetworkData(QNetworkReply *networkReply)
while (!xml.atEnd()) {
xml.readNext();
if (xml.tokenType() == QXmlStreamReader::StartElement)
- if (xml.name() == "suggestion") {
- QStringRef str = xml.attributes().value("data");
+ if (xml.name() == u"suggestion") {
+ auto str = xml.attributes().value("data");
choices << str.toString();
}
}
diff --git a/examples/widgets/animation/sub-attaq/graphicsscene.cpp b/examples/widgets/animation/sub-attaq/graphicsscene.cpp
index c7e2d269c8..5248ed9f92 100644
--- a/examples/widgets/animation/sub-attaq/graphicsscene.cpp
+++ b/examples/widgets/animation/sub-attaq/graphicsscene.cpp
@@ -103,21 +103,21 @@ GraphicsScene::GraphicsScene(int x, int y, int width, int height, Mode mode, QOb
while (!reader.atEnd()) {
reader.readNext();
if (reader.tokenType() == QXmlStreamReader::StartElement) {
- if (reader.name() == "submarine") {
+ if (reader.name() == u"submarine") {
SubmarineDescription desc;
desc.name = reader.attributes().value("name").toString();
desc.points = reader.attributes().value("points").toInt();
desc.type = reader.attributes().value("type").toInt();
submarinesData.append(desc);
- } else if (reader.name() == "level") {
+ } else if (reader.name() == u"level") {
currentLevel.id = reader.attributes().value("id").toInt();
currentLevel.name = reader.attributes().value("name").toString();
- } else if (reader.name() == "subinstance") {
+ } else if (reader.name() == u"subinstance") {
currentLevel.submarines.append(qMakePair(reader.attributes().value("type").toInt(),
reader.attributes().value("nb").toInt()));
}
} else if (reader.tokenType() == QXmlStreamReader::EndElement) {
- if (reader.name() == "level") {
+ if (reader.name() == u"level") {
levelsData.insert(currentLevel.id, currentLevel);
currentLevel.submarines.clear();
}
diff --git a/examples/xml/rsslisting/rsslisting.cpp b/examples/xml/rsslisting/rsslisting.cpp
index 143ad6dcba..0d68d1792a 100644
--- a/examples/xml/rsslisting/rsslisting.cpp
+++ b/examples/xml/rsslisting/rsslisting.cpp
@@ -214,11 +214,11 @@ void RSSListing::parseXml()
while (!xml.atEnd()) {
xml.readNext();
if (xml.isStartElement()) {
- if (xml.name() == "item")
+ if (xml.name() == u"item")
linkString = xml.attributes().value("rss:about").toString();
currentTag = xml.name().toString();
} else if (xml.isEndElement()) {
- if (xml.name() == "item") {
+ if (xml.name() == u"item") {
QTreeWidgetItem *item = new QTreeWidgetItem;
item->setText(0, titleString);
diff --git a/src/corelib/mimetypes/qmimeprovider.cpp b/src/corelib/mimetypes/qmimeprovider.cpp
index 47b5e42167..6766a1bbec 100644
--- a/src/corelib/mimetypes/qmimeprovider.cpp
+++ b/src/corelib/mimetypes/qmimeprovider.cpp
@@ -517,14 +517,14 @@ void QMimeBinaryProvider::loadMimeTypePrivate(QMimeTypePrivate &data)
if (xml.name() != QLatin1String("mime-type")) {
continue;
}
- const QStringRef name = xml.attributes().value(QLatin1String("type"));
+ const auto name = xml.attributes().value(QLatin1String("type"));
if (name.isEmpty())
continue;
if (name.compare(data.name, Qt::CaseInsensitive))
qWarning() << "Got name" << name << "in file" << file << "expected" << data.name;
while (xml.readNextStartElement()) {
- const QStringRef tag = xml.name();
+ const auto tag = xml.name();
if (tag == QLatin1String("comment")) {
QString lang = xml.attributes().value(QLatin1String("xml:lang")).toString();
const QString text = xml.readElementText();
diff --git a/src/corelib/mimetypes/qmimetypeparser.cpp b/src/corelib/mimetypes/qmimetypeparser.cpp
index dc1c444c56..aa5427b16a 100644
--- a/src/corelib/mimetypes/qmimetypeparser.cpp
+++ b/src/corelib/mimetypes/qmimetypeparser.cpp
@@ -107,7 +107,7 @@ static const char matchMaskAttributeC[] = "mask";
Overwrite to process the sequence of parsed data
*/
-QMimeTypeParserBase::ParseState QMimeTypeParserBase::nextState(ParseState currentState, const QStringRef &startElement)
+QMimeTypeParserBase::ParseState QMimeTypeParserBase::nextState(ParseState currentState, QStringView startElement)
{
switch (currentState) {
case ParseBeginning:
@@ -174,7 +174,7 @@ struct CreateMagicMatchRuleResult {
QString errorMessage; // must be first
QMimeMagicRule rule;
- CreateMagicMatchRuleResult(const QStringRef &type, const QStringRef &value, const QStringRef &offsets, const QStringRef &mask)
+ CreateMagicMatchRuleResult(QStringView type, QStringView value, QStringView offsets, QStringView mask)
: errorMessage(), rule(type.toString(), value.toUtf8(), offsets.toString(), mask.toLatin1(), &errorMessage)
{
@@ -183,10 +183,10 @@ struct CreateMagicMatchRuleResult {
static CreateMagicMatchRuleResult createMagicMatchRule(const QXmlStreamAttributes &atts)
{
- const QStringRef type = atts.value(QLatin1String(matchTypeAttributeC));
- const QStringRef value = atts.value(QLatin1String(matchValueAttributeC));
- const QStringRef offsets = atts.value(QLatin1String(matchOffsetAttributeC));
- const QStringRef mask = atts.value(QLatin1String(matchMaskAttributeC));
+ const auto type = atts.value(QLatin1String(matchTypeAttributeC));
+ const auto value = atts.value(QLatin1String(matchValueAttributeC));
+ const auto offsets = atts.value(QLatin1String(matchOffsetAttributeC));
+ const auto mask = atts.value(QLatin1String(matchMaskAttributeC));
return CreateMagicMatchRuleResult(type, value, offsets, mask);
}
#endif
@@ -265,7 +265,7 @@ bool QMimeTypeParserBase::parse(QIODevice *dev, const QString &fileName, QString
break;
case ParseMagic: {
priority = 50;
- const QStringRef priorityS = atts.value(QLatin1String(priorityAttributeC));
+ const auto priorityS = atts.value(QLatin1String(priorityAttributeC));
if (!priorityS.isEmpty()) {
if (!parseNumber(priorityS, &priority, errorMessage))
return false;
@@ -301,7 +301,7 @@ bool QMimeTypeParserBase::parse(QIODevice *dev, const QString &fileName, QString
// continue switch QXmlStreamReader::Token...
case QXmlStreamReader::EndElement: // Finished element
{
- const QStringRef elementName = reader.name();
+ const auto elementName = reader.name();
if (elementName == QLatin1String(mimeTypeTagC)) {
if (!process(QMimeType(data), errorMessage))
return false;
diff --git a/src/corelib/mimetypes/qmimetypeparser_p.h b/src/corelib/mimetypes/qmimetypeparser_p.h
index dbd3415d77..6f1869e399 100644
--- a/src/corelib/mimetypes/qmimetypeparser_p.h
+++ b/src/corelib/mimetypes/qmimetypeparser_p.h
@@ -98,7 +98,7 @@ private:
ParseError
};
- static ParseState nextState(ParseState currentState, const QStringRef &startElement);
+ static ParseState nextState(ParseState currentState, QStringView startElement);
};
diff --git a/src/corelib/serialization/qxmlstream.cpp b/src/corelib/serialization/qxmlstream.cpp
index ba6e3059df..9963fa60ec 100644
--- a/src/corelib/serialization/qxmlstream.cpp
+++ b/src/corelib/serialization/qxmlstream.cpp
@@ -384,13 +384,9 @@ QXmlStreamEntityResolver *QXmlStreamReader::entityResolver() const
token at the time it is reported. In addition, QXmlStreamReader
avoids the many small string allocations that it normally takes to
map an XML document to a convenient and Qt-ish API. It does this by
- reporting all string data as QStringRef rather than real QString
- objects. QStringRef is a thin wrapper around QString substrings that
- provides a subset of the QString API without the memory allocation
- and reference-counting overhead. Calling
- \l{QStringRef::toString()}{toString()} on any of those objects
- returns an equivalent real QString object.
-
+ reporting all string data as QStringView rather than real QString
+ objects. Calling \l{QStringView::toString()}{toString()} on any of
+ those objects returns an equivalent real QString object.
*/
@@ -1928,7 +1924,7 @@ qint64 QXmlStreamReader::characterOffset() const
/*! Returns the text of \l Characters, \l Comment, \l DTD, or
EntityReference.
*/
-QStringRef QXmlStreamReader::text() const
+QStringView QXmlStreamReader::text() const
{
Q_D(const QXmlStreamReader);
return d->text;
@@ -1971,12 +1967,12 @@ QXmlStreamEntityDeclarations QXmlStreamReader::entityDeclarations() const
name. Otherwise an empty string is returned.
*/
-QStringRef QXmlStreamReader::dtdName() const
+QStringView QXmlStreamReader::dtdName() const
{
Q_D(const QXmlStreamReader);
if (d->type == QXmlStreamReader::DTD)
return d->dtdName;
- return QStringRef();
+ return QStringView();
}
/*!
@@ -1986,12 +1982,12 @@ QStringRef QXmlStreamReader::dtdName() const
public identifier. Otherwise an empty string is returned.
*/
-QStringRef QXmlStreamReader::dtdPublicId() const
+QStringView QXmlStreamReader::dtdPublicId() const
{
Q_D(const QXmlStreamReader);
if (d->type == QXmlStreamReader::DTD)
return d->dtdPublicId;
- return QStringRef();
+ return QStringView();
}
/*!
@@ -2001,12 +1997,12 @@ QStringRef QXmlStreamReader::dtdPublicId() const
system identifier. Otherwise an empty string is returned.
*/
-QStringRef QXmlStreamReader::dtdSystemId() const
+QStringView QXmlStreamReader::dtdSystemId() const
{
Q_D(const QXmlStreamReader);
if (d->type == QXmlStreamReader::DTD)
return d->dtdSystemId;
- return QStringRef();
+ return QStringView();
}
/*!
@@ -2187,7 +2183,7 @@ QXmlStreamReader::Error QXmlStreamReader::error() const
/*!
Returns the target of a ProcessingInstruction.
*/
-QStringRef QXmlStreamReader::processingInstructionTarget() const
+QStringView QXmlStreamReader::processingInstructionTarget() const
{
Q_D(const QXmlStreamReader);
return d->processingInstructionTarget;
@@ -2196,7 +2192,7 @@ QStringRef QXmlStreamReader::processingInstructionTarget() const
/*!
Returns the data of a ProcessingInstruction.
*/
-QStringRef QXmlStreamReader::processingInstructionData() const
+QStringView QXmlStreamReader::processingInstructionData() const
{
Q_D(const QXmlStreamReader);
return d->processingInstructionData;
@@ -2209,7 +2205,7 @@ QStringRef QXmlStreamReader::processingInstructionData() const
\sa namespaceUri(), qualifiedName()
*/
-QStringRef QXmlStreamReader::name() const
+QStringView QXmlStreamReader::name() const
{
Q_D(const QXmlStreamReader);
return d->name;
@@ -2220,7 +2216,7 @@ QStringRef QXmlStreamReader::name() const
\sa name(), qualifiedName()
*/
-QStringRef QXmlStreamReader::namespaceUri() const
+QStringView QXmlStreamReader::namespaceUri() const
{
Q_D(const QXmlStreamReader);
return d->namespaceUri;
@@ -2238,7 +2234,7 @@ QStringRef QXmlStreamReader::namespaceUri() const
\sa name(), prefix(), namespaceUri()
*/
-QStringRef QXmlStreamReader::qualifiedName() const
+QStringView QXmlStreamReader::qualifiedName() const
{
Q_D(const QXmlStreamReader);
return d->qualifiedName;
@@ -2253,7 +2249,7 @@ QStringRef QXmlStreamReader::qualifiedName() const
\sa name(), qualifiedName()
*/
-QStringRef QXmlStreamReader::prefix() const
+QStringView QXmlStreamReader::prefix() const
{
Q_D(const QXmlStreamReader);
return d->prefix;
@@ -2317,15 +2313,15 @@ QXmlStreamAttribute::QXmlStreamAttribute(const QString &qualifiedName, const QSt
m_value = QXmlStreamStringRef(QStringRef(&value));
}
-/*! \fn QStringRef QXmlStreamAttribute::namespaceUri() const
+/*! \fn QStringView QXmlStreamAttribute::namespaceUri() const
Returns the attribute's resolved namespaceUri, or an empty string
reference if the attribute does not have a defined namespace.
*/
-/*! \fn QStringRef QXmlStreamAttribute::name() const
+/*! \fn QStringView QXmlStreamAttribute::name() const
Returns the attribute's local name.
*/
-/*! \fn QStringRef QXmlStreamAttribute::qualifiedName() const
+/*! \fn QStringView QXmlStreamAttribute::qualifiedName() const
Returns the attribute's qualified name.
A qualified name is the raw name of an attribute in the XML
@@ -2337,7 +2333,7 @@ QXmlStreamAttribute::QXmlStreamAttribute(const QString &qualifiedName, const QSt
the attribute's local name().
*/
/*!
- \fn QStringRef QXmlStreamAttribute::prefix() const
+ \fn QStringView QXmlStreamAttribute::prefix() const
\since 4.4
Returns the attribute's namespace prefix.
@@ -2345,7 +2341,7 @@ QXmlStreamAttribute::QXmlStreamAttribute(const QString &qualifiedName, const QSt
*/
-/*! \fn QStringRef QXmlStreamAttribute::value() const
+/*! \fn QStringView QXmlStreamAttribute::value() const
Returns the attribute's value.
*/
@@ -2421,15 +2417,15 @@ QXmlStreamNotationDeclaration::QXmlStreamNotationDeclaration()
{
}
-/*! \fn QStringRef QXmlStreamNotationDeclaration::name() const
+/*! \fn QStringView QXmlStreamNotationDeclaration::name() const
Returns the notation name.
*/
-/*! \fn QStringRef QXmlStreamNotationDeclaration::systemId() const
+/*! \fn QStringView QXmlStreamNotationDeclaration::systemId() const
Returns the system identifier.
*/
-/*! \fn QStringRef QXmlStreamNotationDeclaration::publicId() const
+/*! \fn QStringView QXmlStreamNotationDeclaration::publicId() const
Returns the public identifier.
*/
@@ -2492,11 +2488,11 @@ QXmlStreamNamespaceDeclaration::QXmlStreamNamespaceDeclaration(const QString &pr
m_namespaceUri = namespaceUri;
}
-/*! \fn QStringRef QXmlStreamNamespaceDeclaration::prefix() const
+/*! \fn QStringView QXmlStreamNamespaceDeclaration::prefix() const
Returns the prefix.
*/
-/*! \fn QStringRef QXmlStreamNamespaceDeclaration::namespaceUri() const
+/*! \fn QStringView QXmlStreamNamespaceDeclaration::namespaceUri() const
Returns the namespaceUri.
*/
@@ -2545,23 +2541,23 @@ QXmlStreamEntityDeclaration::QXmlStreamEntityDeclaration()
This function is very fast and never fails.
*/
-/*! \fn QStringRef QXmlStreamEntityDeclaration::name() const
+/*! \fn QStringView QXmlStreamEntityDeclaration::name() const
Returns the entity name.
*/
-/*! \fn QStringRef QXmlStreamEntityDeclaration::notationName() const
+/*! \fn QStringView QXmlStreamEntityDeclaration::notationName() const
Returns the notation name.
*/
-/*! \fn QStringRef QXmlStreamEntityDeclaration::systemId() const
+/*! \fn QStringView QXmlStreamEntityDeclaration::systemId() const
Returns the system identifier.
*/
-/*! \fn QStringRef QXmlStreamEntityDeclaration::publicId() const
+/*! \fn QStringView QXmlStreamEntityDeclaration::publicId() const
Returns the public identifier.
*/
-/*! \fn QStringRef QXmlStreamEntityDeclaration::value() const
+/*! \fn QStringView QXmlStreamEntityDeclaration::value() const
Returns the entity's value.
*/
@@ -2581,13 +2577,13 @@ Returns the entity's value.
described with \a namespaceUri, or an empty string reference if the
attribute is not defined. The \a namespaceUri can be empty.
*/
-QStringRef QXmlStreamAttributes::value(const QString &namespaceUri, const QString &name) const
+QStringView QXmlStreamAttributes::value(const QString &namespaceUri, const QString &name) const
{
for (const QXmlStreamAttribute &attribute : *this) {
if (attribute.name() == name && attribute.namespaceUri() == namespaceUri)
return attribute.value();
}
- return QStringRef();
+ return QStringView();
}
/*!\overload
@@ -2595,13 +2591,13 @@ QStringRef QXmlStreamAttributes::value(const QString &namespaceUri, const QStrin
described with \a namespaceUri, or an empty string reference if the
attribute is not defined. The \a namespaceUri can be empty.
*/
-QStringRef QXmlStreamAttributes::value(const QString &namespaceUri, QLatin1String name) const
+QStringView QXmlStreamAttributes::value(const QString &namespaceUri, QLatin1String name) const
{
for (const QXmlStreamAttribute &attribute : *this) {
if (attribute.name() == name && attribute.namespaceUri() == namespaceUri)
return attribute.value();
}
- return QStringRef();
+ return QStringView();
}
/*!\overload
@@ -2609,13 +2605,13 @@ QStringRef QXmlStreamAttributes::value(const QString &namespaceUri, QLatin1Strin
described with \a namespaceUri, or an empty string reference if the
attribute is not defined. The \a namespaceUri can be empty.
*/
-QStringRef QXmlStreamAttributes::value(QLatin1String namespaceUri, QLatin1String name) const
+QStringView QXmlStreamAttributes::value(QLatin1String namespaceUri, QLatin1String name) const
{
for (const QXmlStreamAttribute &attribute : *this) {
if (attribute.name() == name && attribute.namespaceUri() == namespaceUri)
return attribute.value();
}
- return QStringRef();
+ return QStringView();
}
/*!\overload
@@ -2630,13 +2626,13 @@ QStringRef QXmlStreamAttributes::value(QLatin1String namespaceUri, QLatin1String
use qualified names, but a resolved namespaceUri and the attribute's
local name.
*/
-QStringRef QXmlStreamAttributes::value(const QString &qualifiedName) const
+QStringView QXmlStreamAttributes::value(const QString &qualifiedName) const
{
for (const QXmlStreamAttribute &attribute : *this) {
if (attribute.qualifiedName() == qualifiedName)
return attribute.value();
}
- return QStringRef();
+ return QStringView();
}
/*!\overload
@@ -2651,13 +2647,13 @@ QStringRef QXmlStreamAttributes::value(const QString &qualifiedName) const
use qualified names, but a resolved namespaceUri and the attribute's
local name.
*/
-QStringRef QXmlStreamAttributes::value(QLatin1String qualifiedName) const
+QStringView QXmlStreamAttributes::value(QLatin1String qualifiedName) const
{
for (const QXmlStreamAttribute &attribute : *this) {
if (attribute.qualifiedName() == qualifiedName)
return attribute.value();
}
- return QStringRef();
+ return QStringView();
}
/*!Appends a new attribute with \a name in the namespace
@@ -2754,12 +2750,12 @@ bool QXmlStreamReader::isStandaloneDocument() const
version string as specified in the XML declaration.
Otherwise an empty string is returned.
*/
-QStringRef QXmlStreamReader::documentVersion() const
+QStringView QXmlStreamReader::documentVersion() const
{
Q_D(const QXmlStreamReader);
if (d->type == QXmlStreamReader::StartDocument)
return d->documentVersion;
- return QStringRef();
+ return QStringView();
}
/*!
@@ -2769,12 +2765,12 @@ QStringRef QXmlStreamReader::documentVersion() const
encoding string as specified in the XML declaration.
Otherwise an empty string is returned.
*/
-QStringRef QXmlStreamReader::documentEncoding() const
+QStringView QXmlStreamReader::documentEncoding() const
{
Q_D(const QXmlStreamReader);
if (d->type == QXmlStreamReader::StartDocument)
return d->documentEncoding;
- return QStringRef();
+ return QStringView();
}
#endif // QT_NO_XMLSTREAMREADER
diff --git a/src/corelib/serialization/qxmlstream.h b/src/corelib/serialization/qxmlstream.h
index 31c605c981..ba495b64f0 100644
--- a/src/corelib/serialization/qxmlstream.h
+++ b/src/corelib/serialization/qxmlstream.h
@@ -70,9 +70,11 @@ public:
inline void clear() { m_string.clear(); m_position = m_size = 0; }
inline operator QStringRef() const { return QStringRef(&m_string, m_position, m_size); }
+ inline operator QStringView() const { return QStringView(m_string.constData() + m_position, m_size); }
inline const QString *string() const { return &m_string; }
inline int position() const { return m_position; }
inline int size() const { return m_size; }
+ inline QString toString() const { return QString(m_string.constData() + m_position, m_size); }
};
Q_DECLARE_SHARED(QXmlStreamStringRef)
@@ -89,15 +91,14 @@ public:
QXmlStreamAttribute(const QString &qualifiedName, const QString &value);
QXmlStreamAttribute(const QString &namespaceUri, const QString &name, const QString &value);
- inline QStringRef namespaceUri() const { return m_namespaceUri; }
- inline QStringRef name() const { return m_name; }
- inline QStringRef qualifiedName() const { return m_qualifiedName; }
- inline QStringRef prefix() const {
- return QStringRef(m_qualifiedName.string(),
- m_qualifiedName.position(),
+ inline QStringView namespaceUri() const { return m_namespaceUri; }
+ inline QStringView name() const { return m_name; }
+ inline QStringView qualifiedName() const { return m_qualifiedName; }
+ inline QStringView prefix() const {
+ return QStringView(m_qualifiedName.string()->constData() + m_qualifiedName.position(),
qMax(0, m_qualifiedName.size() - m_name.size() - 1));
}
- inline QStringRef value() const { return m_value; }
+ inline QStringView value() const { return m_value; }
inline bool isDefault() const { return m_isDefault; }
inline bool operator==(const QXmlStreamAttribute &other) const {
return (value() == other.value()
@@ -116,11 +117,11 @@ class QXmlStreamAttributes : public QList<QXmlStreamAttribute>
{
public:
inline QXmlStreamAttributes() {}
- Q_CORE_EXPORT QStringRef value(const QString &namespaceUri, const QString &name) const;
- Q_CORE_EXPORT QStringRef value(const QString &namespaceUri, QLatin1String name) const;
- Q_CORE_EXPORT QStringRef value(QLatin1String namespaceUri, QLatin1String name) const;
- Q_CORE_EXPORT QStringRef value(const QString &qualifiedName) const;
- Q_CORE_EXPORT QStringRef value(QLatin1String qualifiedName) const;
+ Q_CORE_EXPORT QStringView value(const QString &namespaceUri, const QString &name) const;
+ Q_CORE_EXPORT QStringView value(const QString &namespaceUri, QLatin1String name) const;
+ Q_CORE_EXPORT QStringView value(QLatin1String namespaceUri, QLatin1String name) const;
+ Q_CORE_EXPORT QStringView value(const QString &qualifiedName) const;
+ Q_CORE_EXPORT QStringView value(QLatin1String qualifiedName) const;
Q_CORE_EXPORT void append(const QString &namespaceUri, const QString &name, const QString &value);
Q_CORE_EXPORT void append(const QString &qualifiedName, const QString &value);
@@ -150,8 +151,8 @@ public:
QXmlStreamNamespaceDeclaration();
QXmlStreamNamespaceDeclaration(const QString &prefix, const QString &namespaceUri);
- inline QStringRef prefix() const { return m_prefix; }
- inline QStringRef namespaceUri() const { return m_namespaceUri; }
+ inline QStringView prefix() const { return m_prefix; }
+ inline QStringView namespaceUri() const { return m_namespaceUri; }
inline bool operator==(const QXmlStreamNamespaceDeclaration &other) const {
return (prefix() == other.prefix() && namespaceUri() == other.namespaceUri());
}
@@ -169,9 +170,9 @@ class Q_CORE_EXPORT QXmlStreamNotationDeclaration {
public:
QXmlStreamNotationDeclaration();
- inline QStringRef name() const { return m_name; }
- inline QStringRef systemId() const { return m_systemId; }
- inline QStringRef publicId() const { return m_publicId; }
+ inline QStringView name() const { return m_name; }
+ inline QStringView systemId() const { return m_systemId; }
+ inline QStringView publicId() const { return m_publicId; }
inline bool operator==(const QXmlStreamNotationDeclaration &other) const {
return (name() == other.name() && systemId() == other.systemId()
&& publicId() == other.publicId());
@@ -190,11 +191,11 @@ class Q_CORE_EXPORT QXmlStreamEntityDeclaration {
public:
QXmlStreamEntityDeclaration();
- inline QStringRef name() const { return m_name; }
- inline QStringRef notationName() const { return m_notationName; }
- inline QStringRef systemId() const { return m_systemId; }
- inline QStringRef publicId() const { return m_publicId; }
- inline QStringRef value() const { return m_value; }
+ inline QStringView name() const { return m_name; }
+ inline QStringView notationName() const { return m_notationName; }
+ inline QStringView systemId() const { return m_systemId; }
+ inline QStringView publicId() const { return m_publicId; }
+ inline QStringView value() const { return m_value; }
inline bool operator==(const QXmlStreamEntityDeclaration &other) const {
return (name() == other.name()
&& notationName() == other.notationName()
@@ -276,8 +277,8 @@ public:
inline bool isProcessingInstruction() const { return tokenType() == ProcessingInstruction; }
bool isStandaloneDocument() const;
- QStringRef documentVersion() const;
- QStringRef documentEncoding() const;
+ QStringView documentVersion() const;
+ QStringView documentEncoding() const;
qint64 lineNumber() const;
qint64 columnNumber() const;
@@ -292,24 +293,24 @@ public:
};
QString readElementText(ReadElementTextBehaviour behaviour = ErrorOnUnexpectedElement);
- QStringRef name() const;
- QStringRef namespaceUri() const;
- QStringRef qualifiedName() const;
- QStringRef prefix() const;
+ QStringView name() const;
+ QStringView namespaceUri() const;
+ QStringView qualifiedName() const;
+ QStringView prefix() const;
- QStringRef processingInstructionTarget() const;
- QStringRef processingInstructionData() const;
+ QStringView processingInstructionTarget() const;
+ QStringView processingInstructionData() const;
- QStringRef text() const;
+ QStringView text() const;
QXmlStreamNamespaceDeclarations namespaceDeclarations() const;
void addExtraNamespaceDeclaration(const QXmlStreamNamespaceDeclaration &extraNamespaceDeclaraction);
void addExtraNamespaceDeclarations(const QXmlStreamNamespaceDeclarations &extraNamespaceDeclaractions);
QXmlStreamNotationDeclarations notationDeclarations() const;
QXmlStreamEntityDeclarations entityDeclarations() const;
- QStringRef dtdName() const;
- QStringRef dtdPublicId() const;
- QStringRef dtdSystemId() const;
+ QStringView dtdName() const;
+ QStringView dtdPublicId() const;
+ QStringView dtdSystemId() const;
int entityExpansionLimit() const;
void setEntityExpansionLimit(int limit);
diff --git a/src/tools/qvkgen/qvkgen.cpp b/src/tools/qvkgen/qvkgen.cpp
index efbe54e0a5..0664f6f5db 100644
--- a/src/tools/qvkgen/qvkgen.cpp
+++ b/src/tools/qvkgen/qvkgen.cpp
@@ -104,7 +104,7 @@ void VkSpecParser::parseCommands()
m_reader.readNext();
if (m_reader.isEndElement() && m_reader.name() == QStringLiteral("commands"))
return;
- if (m_reader.isStartElement() && m_reader.name() == "command")
+ if (m_reader.isStartElement() && m_reader.name() == u"command")
m_commands.append(parseCommand());
}
}
@@ -162,7 +162,7 @@ VkSpecParser::TypedName VkSpecParser::parseParamOrProto(const QString &tag)
skip();
}
} else {
- QStringRef text = m_reader.text().trimmed();
+ auto text = m_reader.text().trimmed();
if (!text.isEmpty()) {
if (text.startsWith(QLatin1Char('['))) {
t.typeSuffix += text;
diff --git a/src/tools/uic/uic.cpp b/src/tools/uic/uic.cpp
index 5b2a602e5f..3601280144 100644
--- a/src/tools/uic/uic.cpp
+++ b/src/tools/uic/uic.cpp
@@ -172,7 +172,7 @@ static double versionFromUiAttribute(QXmlStreamReader &reader)
const QString versionAttribute = QLatin1String("version");
if (!attributes.hasAttribute(versionAttribute))
return 4.0;
- const QStringRef version = attributes.value(versionAttribute);
+ const QStringView version = attributes.value(versionAttribute);
return version.toDouble();
}
diff --git a/src/xml/dom/qdomhelpers.cpp b/src/xml/dom/qdomhelpers.cpp
index 7a9ae1a46c..69fb99715d 100644
--- a/src/xml/dom/qdomhelpers.cpp
+++ b/src/xml/dom/qdomhelpers.cpp
@@ -291,15 +291,6 @@ QT_WARNING_POP
#endif // QT_DEPRECATED_SINCE(5, 15)
-inline QString stringRefToString(const QStringRef &stringRef)
-{
- // Calling QStringRef::toString() on a NULL QStringRef in some cases returns
- // an empty string (i.e. QString("")) instead of a NULL string (i.e. QString()).
- // QDom implementation differentiates between NULL and empty strings, so
- // we need this as workaround to keep the current behavior unchanged.
- return stringRef.isNull() ? QString() : stringRef.toString();
-}
-
bool QDomBuilder::startElement(const QString &nsURI, const QString &qName,
const QXmlStreamAttributes &atts)
{
@@ -317,12 +308,12 @@ bool QDomBuilder::startElement(const QString &nsURI, const QString &qName,
for (const auto &attr : atts) {
auto domElement = static_cast<QDomElementPrivate *>(node);
if (nsProcessing) {
- domElement->setAttributeNS(stringRefToString(attr.namespaceUri()),
- stringRefToString(attr.qualifiedName()),
- stringRefToString(attr.value()));
+ domElement->setAttributeNS(attr.namespaceUri().toString(),
+ attr.qualifiedName().toString(),
+ attr.value().toString());
} else {
- domElement->setAttribute(stringRefToString(attr.qualifiedName()),
- stringRefToString(attr.value()));
+ domElement->setAttribute(attr.qualifiedName().toString(),
+ attr.value().toString());
}
}
@@ -513,9 +504,9 @@ bool QDomParser::parseProlog()
}
foundDtd = true;
- if (!domBuilder.startDTD(stringRefToString(reader->dtdName()),
- stringRefToString(reader->dtdPublicId()),
- stringRefToString(reader->dtdSystemId()))) {
+ if (!domBuilder.startDTD(reader->dtdName().toString(),
+ reader->dtdPublicId().toString(),
+ reader->dtdSystemId().toString())) {
domBuilder.fatalError(
QDomParser::tr("Error occurred while processing document type declaration"));
return false;
@@ -550,13 +541,13 @@ bool QDomParser::parseBody()
{
Q_ASSERT(reader);
- std::stack<QStringRef> tagStack;
+ std::stack<QString> tagStack;
while (!reader->atEnd() && !reader->hasError()) {
switch (reader->tokenType()) {
case QXmlStreamReader::StartElement:
- tagStack.push(reader->qualifiedName());
- if (!domBuilder.startElement(stringRefToString(reader->namespaceUri()),
- stringRefToString(reader->qualifiedName()),
+ tagStack.push(reader->qualifiedName().toString());
+ if (!domBuilder.startElement(reader->namespaceUri().toString(),
+ reader->qualifiedName().toString(),
reader->attributes())) {
domBuilder.fatalError(
QDomParser::tr("Error occurred while processing a start element"));
@@ -641,10 +632,10 @@ bool QDomParser::parseMarkupDecl()
// parsed result. So we don't need to do anything for the Internal Entities.
if (!entityDecl.publicId().isEmpty() || !entityDecl.systemId().isEmpty()) {
// External Entity
- if (!domBuilder.unparsedEntityDecl(stringRefToString(entityDecl.name()),
- stringRefToString(entityDecl.publicId()),
- stringRefToString(entityDecl.systemId()),
- stringRefToString(entityDecl.notationName()))) {
+ if (!domBuilder.unparsedEntityDecl(entityDecl.name().toString(),
+ entityDecl.publicId().toString(),
+ entityDecl.systemId().toString(),
+ entityDecl.notationName().toString())) {
domBuilder.fatalError(
QDomParser::tr("Error occurred while processing entity declaration"));
return false;
@@ -654,9 +645,9 @@ bool QDomParser::parseMarkupDecl()
const auto notations = reader->notationDeclarations();
for (const auto &notationDecl : notations) {
- if (!domBuilder.notationDecl(stringRefToString(notationDecl.name()),
- stringRefToString(notationDecl.publicId()),
- stringRefToString(notationDecl.systemId()))) {
+ if (!domBuilder.notationDecl(notationDecl.name().toString(),
+ notationDecl.publicId().toString(),
+ notationDecl.systemId().toString())) {
domBuilder.fatalError(
QDomParser::tr("Error occurred while processing notation declaration"));
return false;