diff options
author | Mårten Nordheim <marten.nordheim@qt.io> | 2023-04-17 17:41:20 +0200 |
---|---|---|
committer | Mårten Nordheim <marten.nordheim@qt.io> | 2023-04-20 13:17:25 +0000 |
commit | 7a92304040c375fe867f71c1b04bc3e6b2c32b6e (patch) | |
tree | 784d3c63bd14483381ea0ed0086e1c6551be898f /src/gui/text/windows/qwindowsfontdatabase_ft.cpp | |
parent | b3424c7027dcfbf1a912a682589ed1c0e4ba6b9e (diff) |
FontDatabase[win/freetype] implement population of aliases
We rely on this function discovering extra fonts if we cannot find any
or only find poor matches for our font request. Whether that be because
we had only partially populated the fonts of a given family or because
the user specified a font using a localized name.
It's a copy-paste of the implementation in qwindowsfontdatabase
Fixes: QTBUG-111854
Pick-to: 6.5
Change-Id: I0dd97b68d84417a26ce82a46f39804b36602ed67
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'src/gui/text/windows/qwindowsfontdatabase_ft.cpp')
-rw-r--r-- | src/gui/text/windows/qwindowsfontdatabase_ft.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/gui/text/windows/qwindowsfontdatabase_ft.cpp b/src/gui/text/windows/qwindowsfontdatabase_ft.cpp index f30a39aecc..e62f5e54b1 100644 --- a/src/gui/text/windows/qwindowsfontdatabase_ft.cpp +++ b/src/gui/text/windows/qwindowsfontdatabase_ft.cpp @@ -295,6 +295,21 @@ static int QT_WIN_CALLBACK storeFont(const LOGFONT *logFont, const TEXTMETRIC *t return 1; } +bool QWindowsFontDatabaseFT::populateFamilyAliases(const QString &missingFamily) +{ + Q_UNUSED(missingFamily); + + if (m_hasPopulatedAliases) + return false; + + QStringList families = QFontDatabase::families(); + for (const QString &family : families) + populateFamily(family); + m_hasPopulatedAliases = true; + + return true; +} + /* \brief Populates the font database using EnumFontFamiliesEx(). |