From d984adac68a70c0a23b411b103a4c8d777d6fb0d Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 25 May 2020 14:25:06 +0200 Subject: Port QtGui from QStringRef to QStringView Task-number: QTBUG-84319 Change-Id: I1761096fbcc9421a013cf73f831a2a2ba0c18006 Reviewed-by: Alex Blasche --- src/gui/image/qiconloader.cpp | 6 +++--- src/gui/image/qimage.cpp | 6 +++--- src/gui/image/qpnghandler.cpp | 2 +- src/gui/kernel/qhighdpiscaling.cpp | 4 ++-- src/gui/kernel/qkeysequence.cpp | 4 ++-- src/gui/painting/qcolor.cpp | 4 ++-- src/gui/painting/qpagesize.cpp | 2 +- src/gui/text/qcssparser.cpp | 20 ++++++++++---------- src/gui/text/qfont.cpp | 2 +- src/gui/text/qfontdatabase.cpp | 6 +++--- src/gui/text/qtextdocument.cpp | 6 +++--- src/gui/text/qtextdocument_p.cpp | 10 +++++----- src/gui/text/qtextengine.cpp | 4 ++-- src/gui/text/qtexthtmlparser.cpp | 12 ++++++------ src/gui/text/qzip.cpp | 2 +- 15 files changed, 45 insertions(+), 45 deletions(-) (limited to 'src') diff --git a/src/gui/image/qiconloader.cpp b/src/gui/image/qiconloader.cpp index ac7a6864f8..00982ca331 100644 --- a/src/gui/image/qiconloader.cpp +++ b/src/gui/image/qiconloader.cpp @@ -217,7 +217,7 @@ class QIconCacheGtkReader { public: explicit QIconCacheGtkReader(const QString &themeDir); - QVector lookup(const QStringRef &); + QVector lookup(QStringView); bool isValid() const { return m_isValid; } private: QFile m_file; @@ -290,7 +290,7 @@ static quint32 icon_name_hash(const char *p) with this name is present. The char* are pointers to the mapped data. For example, this would return { "32x32/apps", "24x24/apps" , ... } */ -QVector QIconCacheGtkReader::lookup(const QStringRef &name) +QVector QIconCacheGtkReader::lookup(QStringView name) { QVector ret; if (!isValid() || name.isEmpty()) @@ -443,7 +443,7 @@ QThemeIconInfo QIconLoader::findIconHelper(const QString &themeName, const QStringList contentDirs = theme.contentDirs(); - QStringRef iconNameFallback(&iconName); + QStringView iconNameFallback(iconName); // Iterate through all icon's fallbacks in current theme while (info.entries.isEmpty()) { diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index 92a7d05dda..1dc260246c 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -5309,14 +5309,14 @@ QMap qt_getImageText(const QImage &image, const QString &descr QMap qt_getImageTextFromDescription(const QString &description) { QMap text; - const auto pairs = description.splitRef(QLatin1String("\n\n")); - for (const QStringRef &pair : pairs) { + const auto pairs = QStringView{description}.split(u"\n\n"); + for (const auto &pair : pairs) { int index = pair.indexOf(QLatin1Char(':')); if (index >= 0 && pair.indexOf(QLatin1Char(' ')) < index) { if (!pair.trimmed().isEmpty()) text.insert(QLatin1String("Description"), pair.toString().simplified()); } else { - const QStringRef key = pair.left(index); + const auto key = pair.left(index); if (!key.trimmed().isEmpty()) text.insert(key.toString(), pair.mid(index + 2).toString().simplified()); } diff --git a/src/gui/image/qpnghandler.cpp b/src/gui/image/qpnghandler.cpp index 5738148718..f66ab2778a 100644 --- a/src/gui/image/qpnghandler.cpp +++ b/src/gui/image/qpnghandler.cpp @@ -851,7 +851,7 @@ static void set_text(const QImage &image, png_structp png_ptr, png_infop info_pt QMap::ConstIterator it = text.constBegin(); int i = 0; while (it != text.constEnd()) { - text_ptr[i].key = qstrdup(it.key().leftRef(79).toLatin1().constData()); + text_ptr[i].key = qstrdup(QStringView{it.key()}.left(79).toLatin1().constData()); bool noCompress = (it.value().length() < 40); #ifdef PNG_iTXt_SUPPORTED diff --git a/src/gui/kernel/qhighdpiscaling.cpp b/src/gui/kernel/qhighdpiscaling.cpp index 671c2d93ef..40e34edbe8 100644 --- a/src/gui/kernel/qhighdpiscaling.cpp +++ b/src/gui/kernel/qhighdpiscaling.cpp @@ -505,8 +505,8 @@ void QHighDpiScaling::updateHighDpiScaling() if (qEnvironmentVariableIsSet(screenFactorsEnvVar)) { int i = 0; const QString spec = qEnvironmentVariable(screenFactorsEnvVar); - const auto specs = spec.splitRef(QLatin1Char(';')); - for (const QStringRef &spec : specs) { + const auto specs = QStringView{spec}.split(u';'); + for (const auto &spec : specs) { int equalsPos = spec.lastIndexOf(QLatin1Char('=')); qreal factor = 0; if (equalsPos > 0) { diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp index 7de2956367..c54f10fd5e 100644 --- a/src/gui/kernel/qkeysequence.cpp +++ b/src/gui/kernel/qkeysequence.cpp @@ -1131,7 +1131,7 @@ int QKeySequencePrivate::decodeString(QString accel, QKeySequence::SequenceForma int i = 0; int lastI = 0; while ((i = sl.indexOf(QLatin1Char('+'), i + 1)) != -1) { - const QStringRef sub = sl.midRef(lastI, i - lastI + 1); + const QStringView sub = QStringView{sl}.mid(lastI, i - lastI + 1); // If we get here the shortcuts contains at least one '+'. We break up // along the following strategy: // Meta+Ctrl++ ( "Meta+", "Ctrl+", "+" ) @@ -1164,7 +1164,7 @@ int QKeySequencePrivate::decodeString(QString accel, QKeySequence::SequenceForma } int p = accel.lastIndexOf(QLatin1Char('+'), accel.length() - 2); // -2 so that Ctrl++ works - QStringRef accelRef(&accel); + QStringView accelRef(accel); if(p > 0) accelRef = accelRef.mid(p + 1); diff --git a/src/gui/painting/qcolor.cpp b/src/gui/painting/qcolor.cpp index f8a455e28b..06376f224b 100644 --- a/src/gui/painting/qcolor.cpp +++ b/src/gui/painting/qcolor.cpp @@ -867,10 +867,10 @@ QString QColor::name(NameFormat format) const { switch (format) { case HexRgb: - return QLatin1Char('#') + QString::number(rgba() | 0x1000000, 16).rightRef(6); + return QLatin1Char('#') + QStringView{QString::number(rgba() | 0x1000000, 16)}.right(6); case HexArgb: // it's called rgba() but it does return AARRGGBB - return QLatin1Char('#') + QString::number(rgba() | Q_INT64_C(0x100000000), 16).rightRef(8); + return QLatin1Char('#') + QStringView{QString::number(rgba() | Q_INT64_C(0x100000000), 16)}.right(8); } return QString(); } diff --git a/src/gui/painting/qpagesize.cpp b/src/gui/painting/qpagesize.cpp index d73a66b790..944e35c69c 100644 --- a/src/gui/painting/qpagesize.cpp +++ b/src/gui/painting/qpagesize.cpp @@ -398,7 +398,7 @@ static QPageSize::PageSizeId qt_idForPpdKey(const QString &ppdKey, QSize *match { if (ppdKey.isEmpty()) return QPageSize::Custom; - QStringRef key(&ppdKey); + QStringView key(ppdKey); // Remove any Rotated or Tranverse modifiers if (key.endsWith(QLatin1String("Rotated"))) key.chop(7); diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp index 0896453ca8..2f7ccfb07e 100644 --- a/src/gui/text/qcssparser.cpp +++ b/src/gui/text/qcssparser.cpp @@ -403,14 +403,14 @@ ValueExtractor::ValueExtractor(const QVector &decls, const QPalette LengthData ValueExtractor::lengthValue(const Value& v) { const QString str = v.variant.toString(); - QStringRef s(&str); + QStringView s(str); LengthData data; data.unit = LengthData::None; - if (s.endsWith(QLatin1String("px"), Qt::CaseInsensitive)) + if (s.endsWith(u"px", Qt::CaseInsensitive)) data.unit = LengthData::Px; - else if (s.endsWith(QLatin1String("ex"), Qt::CaseInsensitive)) + else if (s.endsWith(u"ex", Qt::CaseInsensitive)) data.unit = LengthData::Ex; - else if (s.endsWith(QLatin1String("em"), Qt::CaseInsensitive)) + else if (s.endsWith(u"em", Qt::CaseInsensitive)) data.unit = LengthData::Em; if (data.unit != LengthData::None) @@ -1513,7 +1513,7 @@ bool Declaration::realValue(qreal *real, const char *unit) const if (unit && v.type != Value::Length) return false; const QString str = v.variant.toString(); - QStringRef s(&str); + QStringView s(str); if (unit) { const QLatin1String unitStr(unit); if (!s.endsWith(unitStr, Qt::CaseInsensitive)) @@ -1532,7 +1532,7 @@ static bool intValueHelper(const QCss::Value &v, int *i, const char *unit) if (unit && v.type != Value::Length) return false; const QString str = v.variant.toString(); - QStringRef s(&str); + QStringView s(str); if (unit) { const QLatin1String unitStr(unit); if (!s.endsWith(unitStr, Qt::CaseInsensitive)) @@ -1584,7 +1584,7 @@ QRect Declaration::rectValue() const const QStringList func = v.variant.toStringList(); if (func.count() != 2 || func.at(0).compare(QLatin1String("rect")) != 0) return QRect(); - const auto args = func[1].splitRef(QLatin1Char(' '), Qt::SkipEmptyParts); + const auto args = QStringView{func[1]}.split(QLatin1Char(' '), Qt::SkipEmptyParts); if (args.count() != 4) return QRect(); QRect rect(args[0].toInt(), args[1].toInt(), args[2].toInt(), args[3].toInt()); @@ -2009,8 +2009,8 @@ bool StyleSelector::basicSelectorMatches(const BasicSelector &sel, NodePtr node) return false; break; case QCss::AttributeSelector::MatchIncludes: { - const auto lst = attrValue.splitRef(QLatin1Char(' ')); - if (!lst.contains(QStringRef(&a.value))) + const auto lst = QStringView{attrValue}.split(u' '); + if (!lst.contains(QStringView(a.value))) return false; break; } @@ -2189,7 +2189,7 @@ QString Scanner::preprocess(const QString &input, bool *hasEscapeSequences) hexCount = qMin(hexCount, 6); bool ok = false; - const char16_t code = output.midRef(hexStart, hexCount).toUShort(&ok, 16); + const char16_t code = QStringView{output}.mid(hexStart, hexCount).toUShort(&ok, 16); if (ok) { output.replace(hexStart - 1, hexCount + 1, code); i = hexStart; diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp index a62daea256..9005c11792 100644 --- a/src/gui/text/qfont.cpp +++ b/src/gui/text/qfont.cpp @@ -2019,7 +2019,7 @@ size_t qHash(const QFont &font, size_t seed) noexcept */ bool QFont::fromString(const QString &descrip) { - const QStringRef sr = QStringRef(&descrip).trimmed(); + const auto sr = QStringView(descrip).trimmed(); const auto l = sr.split(QLatin1Char(',')); const int count = l.count(); if (!count || (count > 2 && count < 9) || count > 11 || diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index 069f9bd5e5..993c37a92f 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -105,7 +105,7 @@ static int getFontWeight(const QString &weightString) return QFont::Light; if (s == QLatin1String("thin")) return QFont::Thin; - const QStringRef s2 = s.midRef(2); + const QStringView s2 = QStringView{s}.mid(2); if (s.startsWith(QLatin1String("ex")) || s.startsWith(QLatin1String("ul"))) { if (s2 == QLatin1String("tralight") || s == QLatin1String("tra light")) return QFont::ExtraLight; @@ -511,11 +511,11 @@ static QStringList familyList(const QFontDef &req) family_list << req.families; if (!req.family.isEmpty()) { - const auto list = req.family.splitRef(QLatin1Char(',')); + const auto list = QStringView{req.family}.split(QLatin1Char(',')); const int numFamilies = list.size(); family_list.reserve(numFamilies); for (int i = 0; i < numFamilies; ++i) { - QStringRef str = list.at(i).trimmed(); + auto str = list.at(i).trimmed(); if ((str.startsWith(QLatin1Char('"')) && str.endsWith(QLatin1Char('"'))) || (str.startsWith(QLatin1Char('\'')) && str.endsWith(QLatin1Char('\'')))) str = str.mid(1, str.length() - 2); diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp index 25a18f56a9..04edf89430 100644 --- a/src/gui/text/qtextdocument.cpp +++ b/src/gui/text/qtextdocument.cpp @@ -102,7 +102,7 @@ bool Qt::mightBeRichText(const QString& text) ++start; // skip a leading as for example with xhtml - if (text.midRef(start, 5).compare(QLatin1String(" ++open; } diff --git a/src/gui/text/qtextdocument_p.cpp b/src/gui/text/qtextdocument_p.cpp index 524931ebde..5198425b26 100644 --- a/src/gui/text/qtextdocument_p.cpp +++ b/src/gui/text/qtextdocument_p.cpp @@ -132,7 +132,7 @@ static bool isValidBlockSeparator(QChar ch) || ch == QTextEndOfFrame; } -static bool noBlockInString(const QStringRef &str) +static bool noBlockInString(QStringView str) { return !str.contains(QChar::ParagraphSeparator) && !str.contains(QTextBeginningOfFrame) @@ -323,7 +323,7 @@ void QTextDocumentPrivate::setLayout(QAbstractTextDocumentLayout *layout) void QTextDocumentPrivate::insert_string(int pos, uint strPos, uint length, int format, QTextUndoCommand::Operation op) { // ##### optimize when only appending to the fragment! - Q_ASSERT(noBlockInString(text.midRef(strPos, length))); + Q_ASSERT(noBlockInString(QStringView{text}.mid(strPos, length))); split(pos); uint x = fragments.insert_single(pos, length); @@ -479,7 +479,7 @@ void QTextDocumentPrivate::insert(int pos, const QString &str, int format) if (str.size() == 0) return; - Q_ASSERT(noBlockInString(QStringRef(&str))); + Q_ASSERT(noBlockInString(str)); int strPos = text.length(); text.append(str); @@ -497,7 +497,7 @@ int QTextDocumentPrivate::remove_string(int pos, uint length, QTextUndoCommand:: Q_ASSERT(blocks.size(b) > length); Q_ASSERT(x && fragments.position(x) == (uint)pos && fragments.size(x) == length); - Q_ASSERT(noBlockInString(text.midRef(fragments.fragment(x)->stringPosition, length))); + Q_ASSERT(noBlockInString(QStringView{text}.mid(fragments.fragment(x)->stringPosition, length))); blocks.setSize(b, blocks.size(b)-length); @@ -632,7 +632,7 @@ void QTextDocumentPrivate::move(int pos, int to, int length, QTextUndoCommand::O if (key+1 != blocks.position(b)) { // qDebug("remove_string from %d length %d", key, X->size_array[0]); - Q_ASSERT(noBlockInString(text.midRef(X->stringPosition, X->size_array[0]))); + Q_ASSERT(noBlockInString(QStringView{text}.mid(X->stringPosition, X->size_array[0]))); w = remove_string(key, X->size_array[0], op); if (needsInsert) { diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index 0500e54dde..ddc75c31fd 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -2979,7 +2979,7 @@ static QString stringMidRetainingBidiCC(const QString &string, suffix += c; } - return prefix + ellidePrefix + string.midRef(midStart, midLength) + ellideSuffix + suffix; + return prefix + ellidePrefix + QStringView{string}.mid(midStart, midLength) + ellideSuffix + suffix; } QString QTextEngine::elidedText(Qt::TextElideMode mode, const QFixed &width, int flags, int from, int count) const @@ -3154,7 +3154,7 @@ QString QTextEngine::elidedText(Qt::TextElideMode mode, const QFixed &width, int if (prevCharJoins(layoutData->string, rightPos)) ellipsisText.append(ZWJ); - return layoutData->string.midRef(from, leftPos - from) + ellipsisText + layoutData->string.midRef(rightPos, to - rightPos); + return QStringView{layoutData->string}.mid(from, leftPos - from) + ellipsisText + QStringView{layoutData->string}.mid(rightPos, to - rightPos); } return layoutData->string.mid(from, to - from); diff --git a/src/gui/text/qtexthtmlparser.cpp b/src/gui/text/qtexthtmlparser.cpp index be82578f5c..bec636757e 100644 --- a/src/gui/text/qtexthtmlparser.cpp +++ b/src/gui/text/qtexthtmlparser.cpp @@ -328,17 +328,17 @@ bool operator<(const QTextHtmlEntity &entity1, const QTextHtmlEntity &entity2) } #endif -static bool operator<(const QStringRef &entityStr, const QTextHtmlEntity &entity) +static bool operator<(QStringView entityStr, const QTextHtmlEntity &entity) { return entityStr < QLatin1String(entity.name); } -static bool operator<(const QTextHtmlEntity &entity, const QStringRef &entityStr) +static bool operator<(const QTextHtmlEntity &entity, QStringView entityStr) { return QLatin1String(entity.name) < entityStr; } -static QChar resolveEntity(const QStringRef &entity) +static QChar resolveEntity(QStringView entity) { const QTextHtmlEntity *start = &entities[0]; const QTextHtmlEntity *end = &entities[MAX_ENTITY]; @@ -804,7 +804,7 @@ QString QTextHtmlParser::parseEntity() { const int recover = pos; int entityLen = 0; - QStringRef entity; + QStringView entity; while (pos < len) { QChar c = txt.at(pos++); if (c.isSpace() || pos - recover > 9) { @@ -815,7 +815,7 @@ QString QTextHtmlParser::parseEntity() ++entityLen; } if (entityLen) { - entity = QStringRef(&txt, recover, entityLen); + entity = QStringView(txt).mid(recover, entityLen); QChar resolved = resolveEntity(entity); if (!resolved.isNull()) return QString(resolved); @@ -1503,7 +1503,7 @@ static void setWidthAttribute(QTextLength *width, const QString &valueStr) if (ok) { *width = QTextLength(QTextLength::FixedLength, realVal); } else { - QStringRef value = QStringRef(&valueStr).trimmed(); + auto value = QStringView(valueStr).trimmed(); if (!value.isEmpty() && value.endsWith(QLatin1Char('%'))) { value.truncate(value.size() - 1); realVal = value.toDouble(&ok); diff --git a/src/gui/text/qzip.cpp b/src/gui/text/qzip.cpp index 80c0f122e8..fbb2c93515 100644 --- a/src/gui/text/qzip.cpp +++ b/src/gui/text/qzip.cpp @@ -497,7 +497,7 @@ QZipReader::FileInfo QZipPrivate::fillFileInfo(int index) const // fix the file path, if broken (convert separators, eat leading and trailing ones) fileInfo.filePath = QDir::fromNativeSeparators(fileInfo.filePath); - QStringRef filePathRef(&fileInfo.filePath); + QStringView filePathRef(fileInfo.filePath); while (filePathRef.startsWith(QLatin1Char('.')) || filePathRef.startsWith(QLatin1Char('/'))) filePathRef = filePathRef.mid(1); while (filePathRef.endsWith(QLatin1Char('/'))) -- cgit v1.2.3