diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index a4e5130937..42c449a0c8 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -689,7 +689,6 @@ static void initFontDef(const QtFontDesc &desc, const QFontDef &request, QFontDe if (!multi) fontDef->style = desc.style->key.style; fontDef->fixedPitch = desc.family->fixedPitch; - fontDef->stretch = desc.style->key.stretch; fontDef->ignorePitch = false; } diff --git a/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp b/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp index ebe9d3b992..9f247a90e2 100644 --- a/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp +++ b/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp @@ -65,6 +65,7 @@ private slots: void fallbackFonts(); void condensedFontWidth(); + void condensedFontWidthNoFontMerging(); void condensedFontMatching(); void rasterFonts(); @@ -297,6 +298,29 @@ static QString testString() return QStringLiteral("foo bar"); } +void tst_QFontDatabase::condensedFontWidthNoFontMerging() +{ + int regularFontId = QFontDatabase::addApplicationFont(m_testFont); + int condensedFontId = QFontDatabase::addApplicationFont(m_testFontCondensed); + + QVERIFY(!QFontDatabase::applicationFontFamilies(regularFontId).isEmpty()); + QVERIFY(!QFontDatabase::applicationFontFamilies(condensedFontId).isEmpty()); + + QString regularFontName = QFontDatabase::applicationFontFamilies(regularFontId).first(); + QString condensedFontName = QFontDatabase::applicationFontFamilies(condensedFontId).first(); + + QFont condensedFont1(condensedFontName); + if (regularFontName == condensedFontName) + condensedFont1.setStyleName(QStringLiteral("Condensed")); + condensedFont1.setStyleStrategy(QFont::PreferMatch); + + QFont condensedFont2 = condensedFont1; + condensedFont2.setStyleStrategy(QFont::StyleStrategy(QFont::NoFontMerging | QFont::PreferMatch)); + + QCOMPARE(QFontMetricsF(condensedFont2).horizontalAdvance(QStringLiteral("foobar")), + QFontMetricsF(condensedFont1).horizontalAdvance(QStringLiteral("foobar"))); + } + void tst_QFontDatabase::condensedFontWidth() { QFontDatabase db;