summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2018-11-09 17:56:08 +0100
committerMårten Nordheim <marten.nordheim@qt.io>2018-11-30 16:15:03 +0000
commit17ced070fd1e55948659bc37c421f98074910599 (patch)
tree2cc19157f873a7732ad4f470f8d6a872f5c42b5a /tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp
parentd23d146175d6fab2ede50818777afe248ca0be23 (diff)
Read font selection flags and use them when querying for metrics
Certain fonts with multiple styles have the same family name. When loading these as application fonts we were not specific enough when querying for the text metrics. This meant that e.g. the bold version in a font family would get the metrics of the regular one. Fixes: QTBUG-67273 Change-Id: Ic988d62cddde0a1f77ddcaf2891cadc21c9b31e6 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp')
-rw-r--r--tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp b/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp
index da2f100c0b..68664cdd2f 100644
--- a/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp
+++ b/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp
@@ -61,6 +61,8 @@ private slots:
void addAppFont_data();
void addAppFont();
+ void addTwoAppFontsFromFamily();
+
void aliases();
void fallbackFonts();
@@ -75,6 +77,7 @@ private:
QString m_ledFont;
QString m_testFont;
QString m_testFontCondensed;
+ QString m_testFontItalic;
};
tst_QFontDatabase::tst_QFontDatabase()
@@ -86,9 +89,11 @@ void tst_QFontDatabase::initTestCase()
m_ledFont = QFINDTESTDATA("LED_REAL.TTF");
m_testFont = QFINDTESTDATA("testfont.ttf");
m_testFontCondensed = QFINDTESTDATA("testfont_condensed.ttf");
+ m_testFontItalic = QFINDTESTDATA("testfont_italic.ttf");
QVERIFY(!m_ledFont.isEmpty());
QVERIFY(!m_testFont.isEmpty());
QVERIFY(!m_testFontCondensed.isEmpty());
+ QVERIFY(!m_testFontItalic.isEmpty());
}
void tst_QFontDatabase::styles_data()
@@ -259,6 +264,30 @@ void tst_QFontDatabase::addAppFont()
QCOMPARE(db.families(), oldFamilies);
}
+void tst_QFontDatabase::addTwoAppFontsFromFamily()
+{
+ int regularId = QFontDatabase::addApplicationFont(m_testFont);
+ if (regularId == -1)
+ QSKIP("Skip the test since app fonts are not supported on this system");
+
+ int italicId = QFontDatabase::addApplicationFont(m_testFontItalic);
+ QVERIFY(italicId != -1);
+
+ QVERIFY(!QFontDatabase::applicationFontFamilies(regularId).isEmpty());
+ QVERIFY(!QFontDatabase::applicationFontFamilies(italicId).isEmpty());
+
+ QString regularFontName = QFontDatabase::applicationFontFamilies(regularId).first();
+ QString italicFontName = QFontDatabase::applicationFontFamilies(italicId).first();
+ QCOMPARE(regularFontName, italicFontName);
+
+ QFont italicFont = QFontDatabase().font(italicFontName,
+ QString::fromLatin1("Italic"), 14);
+ QVERIFY(italicFont.italic());
+
+ QFontDatabase::removeApplicationFont(regularId);
+ QFontDatabase::removeApplicationFont(italicId);
+}
+
void tst_QFontDatabase::aliases()
{
QFontDatabase db;