From f881d00a4f37fcf244be8f93235b9c970aa1a9aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Wed, 5 Dec 2018 12:34:52 +0100 Subject: [PATCH] QWindowsFontDatabase: Check preferred family names for all fonts The code was initially introduced in 9204b8c31ea1b5f0c05870c5b5d74c33b1a4f622 but getting the names were conditioned on whether or not Windows identified it as a truetype font. This excluded cases which had preferred names embedded but was not truetype fonts. To fix that we run the code unconditionally. [ChangeLog][Windows] Fixed a bug where some fonts would not be accessible by referencing their typographic name. Fixes: QTBUG-78556 Change-Id: I8823684b09cce3b1b8722b1e609a5bb49b13da13 Reviewed-by: Eskil Abrahamsen Blomfeldt Reviewed-by: Allan Sandfeld Jensen --- .../windows/qwindowsfontdatabase.cpp | 22 ++++++------- .../windows/qwindowsfontdatabase_ft.cpp | 20 ++++++------ .../auto/gui/text/qfontdatabase/testdata.qrc | 1 + .../text/qfontdatabase/tst_qfontdatabase.cpp | 29 ++++++++++++++++++ tests/auto/shared/resources/testfont_open.otf | Bin 0 -> 62676 bytes 5 files changed, 49 insertions(+), 23 deletions(-) create mode 100644 tests/auto/shared/resources/testfont_open.otf diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp index 011476cf13..36a94724c1 100644 --- a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp +++ b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp @@ -1069,18 +1069,16 @@ static bool addFontToDatabase(QString familyName, QString subFamilyName; QString subFamilyStyle; - if (ttf) { - // Look-up names registered in the font - QFontNames canonicalNames = qt_getCanonicalFontNames(logFont); - if (qt_localizedName(familyName) && !canonicalNames.name.isEmpty()) - englishName = canonicalNames.name; - if (!canonicalNames.preferredName.isEmpty()) { - subFamilyName = familyName; - subFamilyStyle = styleName; - faceName = familyName; // Remember the original name for later lookups - familyName = canonicalNames.preferredName; - styleName = canonicalNames.preferredStyle; - } + // Look-up names registered in the font + QFontNames canonicalNames = qt_getCanonicalFontNames(logFont); + if (qt_localizedName(familyName) && !canonicalNames.name.isEmpty()) + englishName = canonicalNames.name; + if (!canonicalNames.preferredName.isEmpty()) { + subFamilyName = familyName; + subFamilyStyle = styleName; + faceName = familyName; // Remember the original name for later lookups + familyName = canonicalNames.preferredName; + styleName = canonicalNames.preferredStyle; } QSupportedWritingSystems writingSystems; diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase_ft.cpp b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase_ft.cpp index a6b7fcf31e..5c2742d295 100644 --- a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase_ft.cpp +++ b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase_ft.cpp @@ -215,17 +215,15 @@ static bool addFontToDatabase(QString familyName, QString subFamilyName; QString subFamilyStyle; - if (ttf) { - // Look-up names registered in the font - QFontNames canonicalNames = qt_getCanonicalFontNames(logFont); - if (qt_localizedName(familyName) && !canonicalNames.name.isEmpty()) - englishName = canonicalNames.name; - if (!canonicalNames.preferredName.isEmpty()) { - subFamilyName = familyName; - subFamilyStyle = styleName; - familyName = canonicalNames.preferredName; - styleName = canonicalNames.preferredStyle; - } + // Look-up names registered in the font + QFontNames canonicalNames = qt_getCanonicalFontNames(logFont); + if (qt_localizedName(familyName) && !canonicalNames.name.isEmpty()) + englishName = canonicalNames.name; + if (!canonicalNames.preferredName.isEmpty()) { + subFamilyName = familyName; + subFamilyStyle = styleName; + familyName = canonicalNames.preferredName; + styleName = canonicalNames.preferredStyle; } QSupportedWritingSystems writingSystems; diff --git a/tests/auto/gui/text/qfontdatabase/testdata.qrc b/tests/auto/gui/text/qfontdatabase/testdata.qrc index 224e845601..a590099b20 100644 --- a/tests/auto/gui/text/qfontdatabase/testdata.qrc +++ b/tests/auto/gui/text/qfontdatabase/testdata.qrc @@ -4,5 +4,6 @@ ../../../shared/resources/testfont.ttf ../../../shared/resources/testfont_condensed.ttf ../../../shared/resources/testfont_italic.ttf + ../../../shared/resources/testfont_open.otf diff --git a/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp b/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp index 2b69801b59..12e8083622 100644 --- a/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp +++ b/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp @@ -76,6 +76,9 @@ private slots: void rasterFonts(); void smoothFonts(); + void registerOpenTypePreferredNamesSystem(); + void registerOpenTypePreferredNamesApplication(); + private: QString m_ledFont; QString m_testFont; @@ -440,5 +443,31 @@ void tst_QFontDatabase::smoothFonts() QVERIFY(!QFontDatabase().isBitmapScalable(font.family())); } +void tst_QFontDatabase::registerOpenTypePreferredNamesSystem() +{ + QFontDatabase db; + // This font family was picked because it was the only one I had installed which showcased the + // problem + if (!db.hasFamily(QString::fromLatin1("Source Code Pro ExtraLight"))) + QSKIP("Source Code Pro ExtraLight is not installed"); + + QStringList styles = db.styles(QString::fromLatin1("Source Code Pro")); + QVERIFY(styles.contains(QLatin1String("ExtraLight"))); +} + +void tst_QFontDatabase::registerOpenTypePreferredNamesApplication() +{ + QFontDatabase db; + + int id = QFontDatabase::addApplicationFont(QString::fromLatin1(":/testfont_open.otf")); + if (id == -1) + QSKIP("Skip the test since app fonts are not supported on this system"); + + QStringList styles = db.styles(QString::fromLatin1("QtBidiTestFont")); + QVERIFY(styles.contains(QLatin1String("Open"))); + + QFontDatabase::removeApplicationFont(id); +} + QTEST_MAIN(tst_QFontDatabase) #include "tst_qfontdatabase.moc" diff --git a/tests/auto/shared/resources/testfont_open.otf b/tests/auto/shared/resources/testfont_open.otf new file mode 100644 index 0000000000000000000000000000000000000000..0f7950f2dd3ecc0faa38070dd90fc02bfe3aeaff GIT binary patch literal 62676 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 Ko78;se%jl$~UXmC0CT2lBi|)O7;~= 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