From 9f1089531d75b0a831e03c3a31ef8b4e5c0b54f4 Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Wed, 5 Mar 2014 09:00:31 +0200 Subject: Make QFontEngine::type() non-virtual Change-Id: I24ece90d6d8f96dad0c41a474a491b4ea96d97c3 Reviewed-by: Lars Knoll --- src/gui/text/qfontengine_p.h | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'src/gui/text/qfontengine_p.h') 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 -- cgit v1.2.3