diff options
Diffstat (limited to 'src/platformsupport/fontdatabases/fontconfig')
4 files changed, 37 insertions, 26 deletions
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp index 69ec3ba08a..a4d2778ba6 100644 --- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp +++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp @@ -472,10 +472,9 @@ void QFontconfigDatabase::populateFontDatabase() } QFontEngineMulti *QFontconfigDatabase::fontEngineMulti(QFontEngine *fontEngine, - QUnicodeTables::Script script, - const QStringList &fallbacks) + QUnicodeTables::Script script) { - return new QFontEngineMultiFontConfig(fontEngine, script, fallbacks); + return new QFontEngineMultiFontConfig(fontEngine, script); } QFontEngine *QFontconfigDatabase::fontEngine(const QFontDef &f, QUnicodeTables::Script script, void *usrPtr) @@ -515,24 +514,37 @@ QFontEngine *QFontconfigDatabase::fontEngine(const QFontDef &f, QUnicodeTables:: FcCharSet *charset; if (match) { QFontEngineFT::HintStyle default_hint_style; - - //hinting - int hint_style = 0; - if (FcPatternGetInteger (match, FC_HINT_STYLE, 0, &hint_style) == FcResultNoMatch) - hint_style = QFontEngineFT::HintFull; - switch (hint_style) { - case FC_HINT_NONE: - default_hint_style = QFontEngineFT::HintNone; - break; - case FC_HINT_SLIGHT: - default_hint_style = QFontEngineFT::HintLight; - break; - case FC_HINT_MEDIUM: - default_hint_style = QFontEngineFT::HintMedium; - break; - default: - default_hint_style = QFontEngineFT::HintFull; - break; + if (f.hintingPreference != QFont::PreferDefaultHinting) { + switch (f.hintingPreference) { + case QFont::PreferNoHinting: + default_hint_style = QFontEngineFT::HintNone; + break; + case QFont::PreferVerticalHinting: + default_hint_style = QFontEngineFT::HintLight; + break; + case QFont::PreferFullHinting: + default: + default_hint_style = QFontEngineFT::HintFull; + break; + } + } else { + int hint_style = 0; + if (FcPatternGetInteger (match, FC_HINT_STYLE, 0, &hint_style) == FcResultNoMatch) + hint_style = QFontEngineFT::HintFull; + switch (hint_style) { + case FC_HINT_NONE: + default_hint_style = QFontEngineFT::HintNone; + break; + case FC_HINT_SLIGHT: + default_hint_style = QFontEngineFT::HintLight; + break; + case FC_HINT_MEDIUM: + default_hint_style = QFontEngineFT::HintMedium; + break; + default: + default_hint_style = QFontEngineFT::HintFull; + break; + } } engine->setDefaultHintStyle(default_hint_style); diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h index d4742167e9..df62ddeb0b 100644 --- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h +++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h @@ -51,7 +51,7 @@ class QFontconfigDatabase : public QBasicFontDatabase { public: void populateFontDatabase(); - QFontEngineMulti *fontEngineMulti(QFontEngine *fontEngine, QUnicodeTables::Script script, const QStringList &fallbacks); + QFontEngineMulti *fontEngineMulti(QFontEngine *fontEngine, QUnicodeTables::Script script); QFontEngine *fontEngine(const QFontDef &fontDef, QUnicodeTables::Script script, void *handle); QStringList fallbacksForFamily(const QString family, const QFont::Style &style, const QFont::StyleHint &styleHint, const QUnicodeTables::Script &script) const; QStringList addApplicationFont(const QByteArray &fontData, const QString &fileName); diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig.cpp index 2016500767..31828ef01f 100644 --- a/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig.cpp +++ b/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig.cpp @@ -46,9 +46,8 @@ QT_BEGIN_NAMESPACE -QFontEngineMultiFontConfig::QFontEngineMultiFontConfig(QFontEngine *fe, int script, - const QStringList &fallbacks) - : QFontEngineMultiQPA(fe, script, fallbacks) +QFontEngineMultiFontConfig::QFontEngineMultiFontConfig(QFontEngine *fe, int script) + : QFontEngineMultiQPA(fe, script) { } diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h b/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h index 260a9b5c70..046d63c190 100644 --- a/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h +++ b/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h @@ -51,7 +51,7 @@ class QFontEngineMultiFontConfig : public QFontEngineMultiQPA { Q_OBJECT public: - explicit QFontEngineMultiFontConfig(QFontEngine *fe, int script, const QStringList &fallbacks); + explicit QFontEngineMultiFontConfig(QFontEngine *fe, int script); ~QFontEngineMultiFontConfig(); |