+struct ChatItem::LayoutData {
+ QTextLayout *layout;
+
+ LayoutData() { layout = 0; }
+ ~LayoutData() { delete layout; }
+};
+
+class ChatItem::WrapColumnFinder {
+ public:
+ WrapColumnFinder(ChatItem *parent);
+ ~WrapColumnFinder();
+
+ qint16 nextWrapColumn();
+
+ private:
+ ChatItem *item;
+ QTextLayout *layout;
+ QTextLine line;
+ ChatLineModel::WrapList wrapList;
+ qint16 wordidx;
+ qint16 lastwrapcol;
+ qreal lastwrappos;
+ qreal w;
+};
+
+#include "chatline.h"
+inline int ChatItem::row() const { return static_cast<ChatLine *>(parentItem())->row(); }
+inline QTextLayout *ChatItem::layout() const { return _layoutData->layout; }
+