diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2014-03-05 09:00:31 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-05 13:46:15 +0100 |
commit | 9f1089531d75b0a831e03c3a31ef8b4e5c0b54f4 (patch) | |
tree | 1e3013e61f71c9a872507993256d7c2c07452af9 /src/gui/text/qfontengine_p.h | |
parent | e69284db08966cbe907df4b3cdc58fb9f9ee5dc4 (diff) |
Make QFontEngine::type() non-virtual
Change-Id: I24ece90d6d8f96dad0c41a474a491b4ea96d97c3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/gui/text/qfontengine_p.h')
-rw-r--r-- | src/gui/text/qfontengine_p.h | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/gui/text/qfontengine_p.h b/src/gui/text/qfontengine_p.h index f5a894506f..5e40abbda6 100644 --- a/src/gui/text/qfontengine_p.h +++ b/src/gui/text/qfontengine_p.h @@ -125,9 +125,10 @@ public: }; Q_DECLARE_FLAGS(ShaperFlags, ShaperFlag) - QFontEngine(); virtual ~QFontEngine(); + inline Type type() const { return m_type; } + // all of these are in unscaled metrics if the engine supports uncsaled metrics, // otherwise in design metrics struct Properties { @@ -230,8 +231,6 @@ public: virtual bool supportsTransformation(const QTransform &transform) const; - virtual Type type() const = 0; - virtual int glyphCount() const; virtual int glyphMargin(GlyphFormat format) { return format == Format_A32 ? 2 : 0; } @@ -260,6 +259,10 @@ public: }; virtual void setDefaultHintStyle(HintStyle) { } +private: + const Type m_type; + +public: QAtomicInt ref; QFontDef fontDef; @@ -294,6 +297,8 @@ public: inline QVariant userData() const { return m_userData; } protected: + explicit QFontEngine(Type type); + QFixed lastRightBearing(const QGlyphLayout &glyphs, bool round = false); inline void setUserData(const QVariant &userData) { m_userData = userData; } @@ -361,9 +366,11 @@ public: virtual bool canRender(const QChar *string, int len) const; - virtual Type type() const; inline int size() const { return _size; } +protected: + explicit QFontEngineBox(Type type, int size); + private: friend class QFontPrivate; int _size; @@ -403,9 +410,6 @@ public: virtual qreal minLeftBearing() const; virtual qreal minRightBearing() const; - virtual inline Type type() const - { return QFontEngine::Multi; } - virtual bool canRender(const QChar *string, int len) const; QFontEngine *engine(int at) const @@ -430,8 +434,7 @@ protected: class QTestFontEngine : public QFontEngineBox { public: - QTestFontEngine(int size); - virtual Type type() const; + inline QTestFontEngine(int size) : QFontEngineBox(TestFontEngine, size) {} }; QT_END_NAMESPACE |