summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>2014-05-12 08:28:59 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-05-12 09:31:46 +0200
commit3cf9621fa02b17a36dacf336adcc9ed993de7699 (patch)
treea3e92ec0732d4668b8ddf5537e87e9742e10deef /src
parent0a0cc6afc8be1ab38367ad803a303f35f29ed5de (diff)
Respect fixed pitch request when font family is not available
In particular, if you have a <pre> tag in your HTML, this will become a QFont with family "Courier New" and fixedPitch==true. On Android, there's no "Courier New" font, and since the style hint is AnyStyle, we will just return Roboto, which is a proportional font. Note that this exactly matches the condition when fetching the fallback families for the font in the loadEngine() function, which was introduced by 06568ff89c48dee8aab278b8b0538c331aa84595 in Qt 4. [ChangeLog][Text] Respect QFont::fixedPitch() for fallbacks when font family cannot be matched. Task-number: QTBUG-36083 Change-Id: I64787c547dc492b9dd3c49f1edf0d9626d198260 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/gui/text/qfontdatabase.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp
index 558258c30e..06438103ad 100644
--- a/src/gui/text/qfontdatabase.cpp
+++ b/src/gui/text/qfontdatabase.cpp
@@ -2501,10 +2501,14 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp,
if (!engine) {
if (!request.family.isEmpty()) {
+ QFont::StyleHint styleHint = QFont::StyleHint(request.styleHint);
+ if (styleHint == QFont::AnyStyle && request.fixedPitch)
+ styleHint = QFont::TypeWriter;
+
QStringList fallbacks = request.fallBackFamilies
+ fallbackFamilies(request.family,
QFont::Style(request.style),
- QFont::StyleHint(request.styleHint),
+ styleHint,
QChar::Script(script));
if (script > QChar::Script_Common)
fallbacks += QString(); // Find the first font matching the specified script.