diff options
author | Andreas Hartmetz <andreas.hartmetz@kdab.com> | 2015-06-04 18:07:30 +0200 |
---|---|---|
committer | Sérgio Martins <sergio.martins@kdab.com> | 2015-08-14 19:07:11 +0000 |
commit | b71b36fa226cb7dd0ca06558bd0ce3aec1a942e6 (patch) | |
tree | dfb0760860ee1a5aef4bbbef51ddf9f5bcb03b6a /src/gui | |
parent | 7a0222fba3124729171c2bf2a288c371118681e0 (diff) |
Move setter for QFont::HintingPreference to QFontEngineFT.
Preparation for also using it from QCoreTextFontDatabase.
Change-Id: I9cbef59c21f343a88a5cb3fdbee1ed4791d7a36e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/text/qfontengine_ft.cpp | 31 | ||||
-rw-r--r-- | src/gui/text/qfontengine_ft_p.h | 2 |
2 files changed, 27 insertions, 6 deletions
diff --git a/src/gui/text/qfontengine_ft.cpp b/src/gui/text/qfontengine_ft.cpp index 37be0afccf..246df127ad 100644 --- a/src/gui/text/qfontengine_ft.cpp +++ b/src/gui/text/qfontengine_ft.cpp @@ -99,6 +99,13 @@ static bool ft_getSfntTable(void *user_data, uint tag, uchar *buffer, uint *leng static QFontEngineFT::Glyph emptyGlyph = {0, 0, 0, 0, 0, 0, 0, 0}; +static const QFontEngine::HintStyle ftInitialDefaultHintStyle = +#ifdef Q_OS_WIN + QFontEngineFT::HintFull; +#else + QFontEngineFT::HintNone; +#endif + // -------------------------- Freetype support ------------------------------ class QtFreetypeData @@ -629,11 +636,7 @@ QFontEngineFT::QFontEngineFT(const QFontDef &fd) antialias = true; freetype = 0; default_load_flags = FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH; -#ifndef Q_OS_WIN - default_hint_style = HintNone; -#else - default_hint_style = HintFull; -#endif + default_hint_style = ftInitialDefaultHintStyle; subpixelType = Subpixel_None; lcdFilterType = 0; #if defined(FT_LCD_FILTER_H) @@ -760,6 +763,24 @@ bool QFontEngineFT::init(FaceId faceId, bool antialias, GlyphFormat format, return true; } +void QFontEngineFT::setQtDefaultHintStyle(QFont::HintingPreference hintingPreference) +{ + switch (hintingPreference) { + case QFont::PreferNoHinting: + setDefaultHintStyle(HintNone); + break; + case QFont::PreferFullHinting: + setDefaultHintStyle(HintFull); + break; + case QFont::PreferVerticalHinting: + setDefaultHintStyle(HintLight); + break; + case QFont::PreferDefaultHinting: + setDefaultHintStyle(ftInitialDefaultHintStyle); + break; + } +} + void QFontEngineFT::setDefaultHintStyle(HintStyle style) { default_hint_style = style; diff --git a/src/gui/text/qfontengine_ft_p.h b/src/gui/text/qfontengine_ft_p.h index 7b28a4064f..4b32f078e5 100644 --- a/src/gui/text/qfontengine_ft_p.h +++ b/src/gui/text/qfontengine_ft_p.h @@ -281,7 +281,7 @@ private: virtual int getPointInOutline(glyph_t glyph, int flags, quint32 point, QFixed *xpos, QFixed *ypos, quint32 *nPoints) Q_DECL_OVERRIDE; - + void setQtDefaultHintStyle(QFont::HintingPreference hintingPreference); virtual void setDefaultHintStyle(HintStyle style) Q_DECL_OVERRIDE; virtual QFontEngine *cloneWithSize(qreal pixelSize) const Q_DECL_OVERRIDE; |