QT_BEGIN_NAMESPACE
-class QStaticTextUserData
-{
-public:
- QStaticTextUserData() { ref = 0; }
- virtual ~QStaticTextUserData() {}
-
- QAtomicInt ref;
-};
-
class Q_GUI_EXPORT QStaticTextItem
{
public:
- QStaticTextItem() : chars(0), numChars(0), userDataNeedsUpdate(false),
- m_fontEngine(0), m_userData(0) {}
+ QStaticTextItem() : chars(0), numChars(0), m_fontEngine(0) {}
QStaticTextItem(const QStaticTextItem &other)
{
numChars = other.numChars;
font = other.font;
color = other.color;
- userDataNeedsUpdate = other.userDataNeedsUpdate;
m_fontEngine = 0;
- m_userData = 0;
- setUserData(other.userData());
setFontEngine(other.fontEngine());
}
~QStaticTextItem();
- void setUserData(QStaticTextUserData *newUserData)
- {
- if (m_userData == newUserData)
- return;
-
- if (m_userData != 0 && !m_userData->ref.deref())
- delete m_userData;
-
- m_userData = newUserData;
- if (m_userData != 0)
- m_userData->ref.ref();
- }
- QStaticTextUserData *userData() const { return m_userData; }
-
void setFontEngine(QFontEngine *fe);
QFontEngine *fontEngine() const { return m_fontEngine; }
int numChars; // 4 bytes per item
QFont font; // 8 bytes per item
QColor color; // 10 bytes per item
- bool userDataNeedsUpdate : 1; //
// ================
// 51 bytes per item
private: // Needs special handling in setters, so private to avoid abuse
QFontEngine *m_fontEngine; // 4 bytes per item
- QStaticTextUserData *m_userData; // 8 bytes per item
-
};
class QStaticText;
#include "qfont.h"
#include "qfont_p.h"
#include "qfontengine_p.h"
-#include "qstring.h"
-#include <qunicodetables_p.h>
+#include "qunicodetables_p.h"
#include "qtextdocument_p.h"
#include <qapplication.h>
-#include <stdlib.h>
+#if defined(Q_WS_X11)
+# include "qfontengine_ft_p.h"
+#endif
+
+#include <stdlib.h>
QT_BEGIN_NAMESPACE
#endif
}
-QT_BEGIN_INCLUDE_NAMESPACE
-
-#if defined(Q_WS_X11)
-# include "qfontengine_ft_p.h"
-#endif
-
-#include <qharfbuzz_p.h>
-
-QT_END_INCLUDE_NAMESPACE
-
// ask the font engine to find out which glyphs (as an index in the specific font) to use for the text in one item.
static bool stringToGlyphs(HB_ShaperItem *item, QGlyphLayout *glyphs, QFontEngine *fontEngine)
{