diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2014-11-25 15:37:40 +0400 |
---|---|---|
committer | Konstantin Ritt <ritt.ks@gmail.com> | 2014-11-26 01:28:38 +0100 |
commit | 8e3fdf13543f43d7a4cb4fa41f7279f9a5d274d3 (patch) | |
tree | 45e2382c3293efbee0f19cef78405b9b8b939f2b /src/gui/text/qfontengine_p.h | |
parent | f4191888eb6355c5a63fdc20d144e9afa6910950 (diff) |
Merge QFontEngineMultiBasicImpl and QFontEngineMulti
Minor refactoring also improves the behavior and the code readability.
Change-Id: Id89dd224f4132a4c0dfbc16f414ef42cc8d8a4da
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Diffstat (limited to 'src/gui/text/qfontengine_p.h')
-rw-r--r-- | src/gui/text/qfontengine_p.h | 48 |
1 files changed, 15 insertions, 33 deletions
diff --git a/src/gui/text/qfontengine_p.h b/src/gui/text/qfontengine_p.h index 9364b82bed..5ed53a4338 100644 --- a/src/gui/text/qfontengine_p.h +++ b/src/gui/text/qfontengine_p.h @@ -385,7 +385,7 @@ private: class Q_GUI_EXPORT QFontEngineMulti : public QFontEngine { public: - explicit QFontEngineMulti(int engineCount); + explicit QFontEngineMulti(QFontEngine *engine, int script, const QStringList &fallbackFamilies = QStringList()); ~QFontEngineMulti(); virtual glyph_t glyphIndex(uint ucs4) const; @@ -418,46 +418,28 @@ public: virtual bool canRender(const QChar *string, int len) const; - QFontEngine *engine(int at) const - {Q_ASSERT(at < engines.size()); return engines.at(at); } + inline int fallbackFamilyCount() const { return m_fallbackFamilies.size(); } + inline QString fallbackFamilyAt(int at) const { return m_fallbackFamilies.at(at); } - inline void ensureEngineAt(int at) - { - if (at >= engines.size() || engines.at(at) == 0) - loadEngine(at); - } - - virtual bool shouldLoadFontEngineForCharacter(int at, uint ucs4) const; - virtual void setFallbackFamiliesList(const QStringList &) {} - -protected: - friend class QRawFont; - virtual void loadEngine(int at) = 0; - virtual void ensureFallbackFamiliesQueried() {} - QVector<QFontEngine *> engines; -}; + void setFallbackFamiliesList(const QStringList &fallbackFamilies); -class Q_GUI_EXPORT QFontEngineMultiBasicImpl : public QFontEngineMulti -{ -public: - QFontEngineMultiBasicImpl(QFontEngine *fe, int script, const QStringList &fallbacks); - QFontEngineMultiBasicImpl(QFontEngine *fe, int script); + inline QFontEngine *engine(int at) const + { Q_ASSERT(at < m_engines.size()); return m_engines.at(at); } - void loadEngine(int at); - static QFontEngine* createMultiFontEngine(QFontEngine *fe, int script); + void ensureEngineAt(int at); - int fallbackFamilyCount() const { return fallbackFamilies.size(); } - QString fallbackFamilyAt(int at) const { return fallbackFamilies.at(at); } + static QFontEngine *createMultiFontEngine(QFontEngine *fe, int script); +protected: virtual void ensureFallbackFamiliesQueried(); - virtual void setFallbackFamiliesList(const QStringList &fallbacks); + virtual bool shouldLoadFontEngineForCharacter(int at, uint ucs4) const; + virtual QFontEngine *loadEngine(int at); private: - void init(QFontEngine *fe); - - mutable QStringList fallbackFamilies; - int script; - mutable bool fallbacksQueried; + QVector<QFontEngine *> m_engines; + QStringList m_fallbackFamilies; + const int m_script; + bool m_fallbackFamiliesQueried; }; class QTestFontEngine : public QFontEngineBox |