gui/text: use const methods more

to avoid implicit detach

Change-Id: I2c6edfcf8b9dc6e9bb0801b7bd58f34a8033a955
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
Anton Kudryavtsev 2023-09-07 15:39:59 +03:00
parent 14505ca278
commit 2c67774f99
10 changed files with 30 additions and 30 deletions

View File

@ -733,7 +733,7 @@ QFontEngine *QFontDatabasePrivate::loadSingleEngine(int script,
// Also check for OpenType tables when using complex scripts // Also check for OpenType tables when using complex scripts
if (Q_UNLIKELY(!engine->supportsScript(QChar::Script(script)))) { if (Q_UNLIKELY(!engine->supportsScript(QChar::Script(script)))) {
qWarning(" OpenType support missing for \"%s\", script %d", qWarning(" OpenType support missing for \"%s\", script %d",
qPrintable(def.families.first()), script); qPrintable(def.families.constFirst()), script);
return nullptr; return nullptr;
} }
@ -758,7 +758,7 @@ QFontEngine *QFontDatabasePrivate::loadSingleEngine(int script,
// Also check for OpenType tables when using complex scripts // Also check for OpenType tables when using complex scripts
if (!engine->supportsScript(QChar::Script(script))) { if (!engine->supportsScript(QChar::Script(script))) {
qWarning(" OpenType support missing for \"%s\", script %d", qWarning(" OpenType support missing for \"%s\", script %d",
+qPrintable(def.families.first()), script); +qPrintable(def.families.constFirst()), script);
if (engine->ref.loadRelaxed() == 0) if (engine->ref.loadRelaxed() == 0)
delete engine; delete engine;
return nullptr; return nullptr;
@ -2465,7 +2465,7 @@ QFontEngine *QFontDatabasePrivate::findFont(const QFontDef &req,
if (!engine) { if (!engine) {
QtFontDesc desc; QtFontDesc desc;
do { do {
index = match(multi ? QChar::Script_Common : script, def, def.families.first(), ""_L1, &desc, blackListed); index = match(multi ? QChar::Script_Common : script, def, def.families.constFirst(), ""_L1, &desc, blackListed);
if (index >= 0) { if (index >= 0) {
QFontDef loadDef = def; QFontDef loadDef = def;
if (loadDef.families.isEmpty()) if (loadDef.families.isEmpty())
@ -2541,7 +2541,7 @@ void QFontDatabasePrivate::load(const QFontPrivate *d, int script)
family_list << req.families.at(0); family_list << req.families.at(0);
// add the default family // add the default family
auto families = QGuiApplication::font().families(); const auto families = QGuiApplication::font().families();
if (!families.isEmpty()) { if (!families.isEmpty()) {
QString defaultFamily = families.first(); QString defaultFamily = families.first();
if (! family_list.contains(defaultFamily)) if (! family_list.contains(defaultFamily))

View File

@ -1727,7 +1727,7 @@ void QFontEngineMulti::ensureFallbackFamiliesQueried()
if (styleHint == QFont::AnyStyle && fontDef.fixedPitch) if (styleHint == QFont::AnyStyle && fontDef.fixedPitch)
styleHint = QFont::TypeWriter; styleHint = QFont::TypeWriter;
setFallbackFamiliesList(qt_fallbacksForFamily(fontDef.families.first(), setFallbackFamiliesList(qt_fallbacksForFamily(fontDef.families.constFirst(),
QFont::Style(fontDef.style), styleHint, QFont::Style(fontDef.style), styleHint,
QChar::Script(m_script))); QChar::Script(m_script)));
} }
@ -1743,7 +1743,7 @@ void QFontEngineMulti::setFallbackFamiliesList(const QStringList &fallbackFamili
QFontEngine *engine = m_engines.at(0); QFontEngine *engine = m_engines.at(0);
engine->ref.ref(); engine->ref.ref();
m_engines[1] = engine; m_engines[1] = engine;
m_fallbackFamilies << fontDef.families.first(); m_fallbackFamilies << fontDef.families.constFirst();
} else { } else {
m_engines.resize(m_fallbackFamilies.size() + 1); m_engines.resize(m_fallbackFamilies.size() + 1);
} }

View File

@ -1195,7 +1195,7 @@ QByteArray QFontSubset::toTruetype() const
name.copyright = "Fake font"_L1; name.copyright = "Fake font"_L1;
else else
name.copyright = QLatin1StringView(properties.copyright); name.copyright = QLatin1StringView(properties.copyright);
name.family = fontEngine->fontDef.families.first(); name.family = fontEngine->fontDef.families.constFirst();
name.subfamily = "Regular"_L1; // ###### name.subfamily = "Regular"_L1; // ######
name.postscript_name = QLatin1StringView(properties.postscriptName); name.postscript_name = QLatin1StringView(properties.postscriptName);
name_table = generateName(name); name_table = generateName(name);

View File

@ -440,7 +440,7 @@ qreal QRawFont::underlinePosition() const
*/ */
QString QRawFont::familyName() const QString QRawFont::familyName() const
{ {
return d->isValid() ? d->fontEngine->fontDef.families.first() : QString(); return d->isValid() ? d->fontEngine->fontDef.families.constFirst() : QString();
} }
/*! /*!

View File

@ -1205,8 +1205,8 @@ void QTextHtmlParserNode::applyCssDeclarations(const QList<QCss::Declaration> &d
if (decl.d->values.isEmpty()) continue; if (decl.d->values.isEmpty()) continue;
QCss::KnownValue identifier = QCss::UnknownValue; QCss::KnownValue identifier = QCss::UnknownValue;
if (decl.d->values.first().type == QCss::Value::KnownIdentifier) if (decl.d->values.constFirst().type == QCss::Value::KnownIdentifier)
identifier = static_cast<QCss::KnownValue>(decl.d->values.first().variant.toInt()); identifier = static_cast<QCss::KnownValue>(decl.d->values.constFirst().variant.toInt());
switch (decl.d->propertyId) { switch (decl.d->propertyId) {
case QCss::BorderColor: borderBrush = QBrush(decl.colorValue()); break; case QCss::BorderColor: borderBrush = QBrush(decl.colorValue()); break;
@ -1233,10 +1233,10 @@ void QTextHtmlParserNode::applyCssDeclarations(const QList<QCss::Declaration> &d
} }
break; break;
case QCss::QtBlockIndent: case QCss::QtBlockIndent:
blockFormat.setIndent(decl.d->values.first().variant.toInt()); blockFormat.setIndent(decl.d->values.constFirst().variant.toInt());
break; break;
case QCss::QtLineHeightType: { case QCss::QtLineHeightType: {
QString lineHeightTypeName = decl.d->values.first().variant.toString(); QString lineHeightTypeName = decl.d->values.constFirst().variant.toString();
QTextBlockFormat::LineHeightTypes lineHeightType; QTextBlockFormat::LineHeightTypes lineHeightType;
if (lineHeightTypeName.compare("proportional"_L1, Qt::CaseInsensitive) == 0) if (lineHeightTypeName.compare("proportional"_L1, Qt::CaseInsensitive) == 0)
lineHeightType = QTextBlockFormat::ProportionalHeight; lineHeightType = QTextBlockFormat::ProportionalHeight;
@ -1265,7 +1265,7 @@ void QTextHtmlParserNode::applyCssDeclarations(const QList<QCss::Declaration> &d
lineHeightType = QTextBlockFormat::MinimumHeight; lineHeightType = QTextBlockFormat::MinimumHeight;
} else { } else {
bool ok; bool ok;
QCss::Value cssValue = decl.d->values.first(); QCss::Value cssValue = decl.d->values.constFirst();
QString value = cssValue.toString(); QString value = cssValue.toString();
lineHeight = value.toDouble(&ok); lineHeight = value.toDouble(&ok);
if (ok) { if (ok) {
@ -1297,19 +1297,19 @@ void QTextHtmlParserNode::applyCssDeclarations(const QList<QCss::Declaration> &d
hasCssListIndent = true; hasCssListIndent = true;
break; break;
case QCss::QtParagraphType: case QCss::QtParagraphType:
if (decl.d->values.first().variant.toString().compare("empty"_L1, Qt::CaseInsensitive) == 0) if (decl.d->values.constFirst().variant.toString().compare("empty"_L1, Qt::CaseInsensitive) == 0)
isEmptyParagraph = true; isEmptyParagraph = true;
break; break;
case QCss::QtTableType: case QCss::QtTableType:
if (decl.d->values.first().variant.toString().compare("frame"_L1, Qt::CaseInsensitive) == 0) if (decl.d->values.constFirst().variant.toString().compare("frame"_L1, Qt::CaseInsensitive) == 0)
isTextFrame = true; isTextFrame = true;
else if (decl.d->values.first().variant.toString().compare("root"_L1, Qt::CaseInsensitive) == 0) { else if (decl.d->values.constFirst().variant.toString().compare("root"_L1, Qt::CaseInsensitive) == 0) {
isTextFrame = true; isTextFrame = true;
isRootFrame = true; isRootFrame = true;
} }
break; break;
case QCss::QtUserState: case QCss::QtUserState:
userState = decl.d->values.first().variant.toInt(); userState = decl.d->values.constFirst().variant.toInt();
break; break;
case QCss::Whitespace: case QCss::Whitespace:
switch (identifier) { switch (identifier) {
@ -1363,10 +1363,10 @@ void QTextHtmlParserNode::applyCssDeclarations(const QList<QCss::Declaration> &d
setListStyle(decl.d->values); setListStyle(decl.d->values);
break; break;
case QCss::QtListNumberPrefix: case QCss::QtListNumberPrefix:
textListNumberPrefix = decl.d->values.first().variant.toString(); textListNumberPrefix = decl.d->values.constFirst().variant.toString();
break; break;
case QCss::QtListNumberSuffix: case QCss::QtListNumberSuffix:
textListNumberSuffix = decl.d->values.first().variant.toString(); textListNumberSuffix = decl.d->values.constFirst().variant.toString();
break; break;
case QCss::TextAlignment: case QCss::TextAlignment:
switch (identifier) { switch (identifier) {
@ -1381,7 +1381,7 @@ void QTextHtmlParserNode::applyCssDeclarations(const QList<QCss::Declaration> &d
{ {
if (resourceProvider != nullptr && QTextDocumentPrivate::get(resourceProvider) != nullptr) { if (resourceProvider != nullptr && QTextDocumentPrivate::get(resourceProvider) != nullptr) {
bool ok; bool ok;
qint64 searchKey = decl.d->values.first().variant.toLongLong(&ok); qint64 searchKey = decl.d->values.constFirst().variant.toLongLong(&ok);
if (ok) if (ok)
applyForegroundImage(searchKey, resourceProvider); applyForegroundImage(searchKey, resourceProvider);
} }
@ -2080,7 +2080,7 @@ QList<QCss::Declaration> standardDeclarationForNode(const QTextHtmlParserNode &n
decl.d->propertyId = QCss::FontFamily; decl.d->propertyId = QCss::FontFamily;
QList<QCss::Value> values; QList<QCss::Value> values;
val.type = QCss::Value::String; val.type = QCss::Value::String;
val.variant = QFontDatabase::systemFont(QFontDatabase::FixedFont).families().first(); val.variant = QFontDatabase::systemFont(QFontDatabase::FixedFont).families().constFirst();
values << val; values << val;
decl.d->values = values; decl.d->values = values;
decl.d->inheritable = true; decl.d->inheritable = true;

View File

@ -402,7 +402,7 @@ int QTextMarkdownImporter::cbEnterSpan(int spanType, void *det)
break; break;
} }
m_spanFormatStack.push(charFmt); m_spanFormatStack.push(charFmt);
qCDebug(lcMD) << spanType << "setCharFormat" << charFmt.font().families().first() qCDebug(lcMD) << spanType << "setCharFormat" << charFmt.font().families().constFirst()
<< charFmt.fontWeight() << (charFmt.fontItalic() ? "italic" : "") << charFmt.fontWeight() << (charFmt.fontItalic() ? "italic" : "")
<< charFmt.foreground().color().name(); << charFmt.foreground().color().name();
m_cursor.setCharFormat(charFmt); m_cursor.setCharFormat(charFmt);
@ -419,7 +419,7 @@ int QTextMarkdownImporter::cbLeaveSpan(int spanType, void *detail)
charFmt = m_spanFormatStack.top(); charFmt = m_spanFormatStack.top();
} }
m_cursor.setCharFormat(charFmt); m_cursor.setCharFormat(charFmt);
qCDebug(lcMD) << spanType << "setCharFormat" << charFmt.font().families().first() qCDebug(lcMD) << spanType << "setCharFormat" << charFmt.font().families().constFirst()
<< charFmt.fontWeight() << (charFmt.fontItalic() ? "italic" : "") << charFmt.fontWeight() << (charFmt.fontItalic() ? "italic" : "")
<< charFmt.foreground().color().name(); << charFmt.foreground().color().name();
if (spanType == int(MD_SPAN_IMG)) if (spanType == int(MD_SPAN_IMG))

View File

@ -368,8 +368,8 @@ void QWindowsDirectWriteFontDatabase::populateFontDatabase()
bool hasDefaultLocale = GetUserDefaultLocaleName(defaultLocale, LOCALE_NAME_MAX_LENGTH) != 0; bool hasDefaultLocale = GetUserDefaultLocaleName(defaultLocale, LOCALE_NAME_MAX_LENGTH) != 0;
wchar_t englishLocale[] = L"en-us"; wchar_t englishLocale[] = L"en-us";
const QString defaultFontName = defaultFont().families().first(); const QString defaultFontName = defaultFont().families().constFirst();
const QString systemDefaultFontName = systemDefaultFont().families().first(); const QString systemDefaultFontName = systemDefaultFont().families().constFirst();
IDWriteFontCollection *fontCollection; IDWriteFontCollection *fontCollection;
if (SUCCEEDED(data()->directWriteFactory->GetSystemFontCollection(&fontCollection))) { if (SUCCEEDED(data()->directWriteFactory->GetSystemFontCollection(&fontCollection))) {

View File

@ -725,7 +725,7 @@ void QWindowsFontDatabase::populateFontDatabase()
EnumFontFamiliesEx(dummy, &lf, populateFontFamilies, 0, 0); EnumFontFamiliesEx(dummy, &lf, populateFontFamilies, 0, 0);
ReleaseDC(0, dummy); ReleaseDC(0, dummy);
// Work around EnumFontFamiliesEx() not listing the system font. // Work around EnumFontFamiliesEx() not listing the system font.
const QString systemDefaultFamily = QWindowsFontDatabase::systemDefaultFont().families().first(); const QString systemDefaultFamily = QWindowsFontDatabase::systemDefaultFont().families().constFirst();
if (QPlatformFontDatabase::resolveFontFamilyAlias(systemDefaultFamily) == systemDefaultFamily) if (QPlatformFontDatabase::resolveFontFamilyAlias(systemDefaultFamily) == systemDefaultFamily)
QPlatformFontDatabase::registerFontFamily(systemDefaultFamily); QPlatformFontDatabase::registerFontFamily(systemDefaultFamily);
addDefaultEUDCFont(); addDefaultEUDCFont();
@ -820,7 +820,7 @@ QT_WARNING_POP
if (fontEngine) { if (fontEngine) {
if (request.families != fontEngine->fontDef.families) { if (request.families != fontEngine->fontDef.families) {
qWarning("%s: Failed to load font. Got fallback instead: %s", __FUNCTION__, qWarning("%s: Failed to load font. Got fallback instead: %s", __FUNCTION__,
qPrintable(fontEngine->fontDef.families.first())); qPrintable(fontEngine->fontDef.families.constFirst()));
if (fontEngine->ref.loadRelaxed() == 0) if (fontEngine->ref.loadRelaxed() == 0)
delete fontEngine; delete fontEngine;
fontEngine = 0; fontEngine = 0;

View File

@ -378,7 +378,7 @@ void QWindowsFontDatabaseFT::populateFontDatabase()
EnumFontFamiliesEx(dummy, &lf, populateFontFamilies, 0, 0); EnumFontFamiliesEx(dummy, &lf, populateFontFamilies, 0, 0);
ReleaseDC(0, dummy); ReleaseDC(0, dummy);
// Work around EnumFontFamiliesEx() not listing the system font // Work around EnumFontFamiliesEx() not listing the system font
const QString systemDefaultFamily = QWindowsFontDatabase::systemDefaultFont().families().first(); const QString systemDefaultFamily = QWindowsFontDatabase::systemDefaultFont().families().constFirst();
if (QPlatformFontDatabase::resolveFontFamilyAlias(systemDefaultFamily) == systemDefaultFamily) if (QPlatformFontDatabase::resolveFontFamilyAlias(systemDefaultFamily) == systemDefaultFamily)
QPlatformFontDatabase::registerFontFamily(systemDefaultFamily); QPlatformFontDatabase::registerFontFamily(systemDefaultFamily);
} }
@ -386,7 +386,7 @@ void QWindowsFontDatabaseFT::populateFontDatabase()
QFontEngine * QWindowsFontDatabaseFT::fontEngine(const QFontDef &fontDef, void *handle) QFontEngine * QWindowsFontDatabaseFT::fontEngine(const QFontDef &fontDef, void *handle)
{ {
QFontEngine *fe = QFreeTypeFontDatabase::fontEngine(fontDef, handle); QFontEngine *fe = QFreeTypeFontDatabase::fontEngine(fontDef, handle);
qCDebug(lcQpaFonts) << __FUNCTION__ << "FONTDEF" << fontDef.families.first() << fe << handle; qCDebug(lcQpaFonts) << __FUNCTION__ << "FONTDEF" << fontDef.families.constFirst() << fe << handle;
return fe; return fe;
} }

View File

@ -1089,7 +1089,7 @@ QImage QWindowsFontEngine::alphaRGBMapForGlyph(glyph_t glyph,
QFontEngine *QWindowsFontEngine::cloneWithSize(qreal pixelSize) const QFontEngine *QWindowsFontEngine::cloneWithSize(qreal pixelSize) const
{ {
QFontDef request = fontDef; QFontDef request = fontDef;
QString actualFontName = request.families.first(); QString actualFontName = request.families.constFirst();
if (!uniqueFamilyName.isEmpty()) if (!uniqueFamilyName.isEmpty())
request.families = QStringList(uniqueFamilyName); request.families = QStringList(uniqueFamilyName);
request.pixelSize = pixelSize; request.pixelSize = pixelSize;