summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp')
-rw-r--r--src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp36
1 files changed, 21 insertions, 15 deletions
diff --git a/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp b/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
index 43903acfe1..52505c570b 100644
--- a/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
+++ b/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
@@ -106,6 +106,24 @@ void QBasicFontDatabase::populateFontDatabase()
}
}
+inline static void setHintingPreference(QFontEngine *engine, QFont::HintingPreference hintingPreference)
+{
+ switch (hintingPreference) {
+ case QFont::PreferNoHinting:
+ engine->setDefaultHintStyle(QFontEngineFT::HintNone);
+ break;
+ case QFont::PreferFullHinting:
+ engine->setDefaultHintStyle(QFontEngineFT::HintFull);
+ break;
+ case QFont::PreferVerticalHinting:
+ engine->setDefaultHintStyle(QFontEngineFT::HintLight);
+ break;
+ case QFont::PreferDefaultHinting:
+ // Leave it as it is
+ break;
+ }
+}
+
QFontEngine *QBasicFontDatabase::fontEngine(const QFontDef &fontDef, void *usrPtr)
{
FontFile *fontfile = static_cast<FontFile *> (usrPtr);
@@ -120,6 +138,8 @@ QFontEngine *QBasicFontDatabase::fontEngine(const QFontDef &fontDef, void *usrPt
if (!engine->init(fid, antialias, format) || engine->invalid()) {
delete engine;
engine = 0;
+ } else {
+ setHintingPreference(engine, static_cast<QFont::HintingPreference>(fontDef.hintingPreference));
}
return engine;
@@ -172,21 +192,7 @@ QFontEngine *QBasicFontDatabase::fontEngine(const QByteArray &fontData, qreal pi
}
fe->updateFamilyNameAndStyle();
-
- switch (hintingPreference) {
- case QFont::PreferNoHinting:
- fe->setDefaultHintStyle(QFontEngineFT::HintNone);
- break;
- case QFont::PreferFullHinting:
- fe->setDefaultHintStyle(QFontEngineFT::HintFull);
- break;
- case QFont::PreferVerticalHinting:
- fe->setDefaultHintStyle(QFontEngineFT::HintLight);
- break;
- default:
- // Leave it as it is
- break;
- }
+ setHintingPreference(fe, hintingPreference);
return fe;
}