From dd66b3a1958784d75f8738ddedd8ec9e7a502b22 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Sat, 1 Jan 2022 19:53:37 +0200 Subject: [PATCH] return standard point sizes for scalable fonts from QFontDatabase::smoothSizes() Signed-off-by: Ivailo Monev --- src/gui/text/qfontdatabase.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index dbc425739..cf412681b 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -517,7 +517,25 @@ QFont QFontDatabase::font(const QString &family, const QString &style, */ QList QFontDatabase::smoothSizes(const QString &family, const QString &style) { - return pointSizes(family, style); + QString parsedfamily, parsedfoundry; + parseFontName(family, parsedfoundry, parsedfamily); + + QList result; + foreach (const QtFontFamily &fontfamily, d->families) { + if (fontfamily.family.compare(parsedfamily, Qt::CaseInsensitive) != 0 + || fontfamily.foundry.compare(parsedfoundry, Qt::CaseInsensitive) != 0 + || fontfamily.style.compare(style, Qt::CaseInsensitive) != 0) { + continue; + } + if (fontfamily.scalable) { + result = standardSizes(); + } else { + result.append(fontfamily.pointsize); + } + break; + } + qSort(result); + return result; }