-struct ContentsChatItem::LayoutData {
- QTextLayout *layout;
- QList<Clickable> clickables;
- Clickable currentClickable;
+struct ContentsChatItemPrivate : ChatItemPrivate {
+ ContentsChatItem *contentsItem;
+ QList<ContentsChatItem::Clickable> clickables;
+ ContentsChatItem::Clickable currentClickable;
+ bool hasDragged;
+
+ ContentsChatItemPrivate(QTextLayout *l, const QList<ContentsChatItem::Clickable> &c, ContentsChatItem *parent) : ChatItemPrivate(l), contentsItem(parent), clickables(c), hasDragged(false), controller(0) {}
+ ~ContentsChatItemPrivate();
+
+ void loadWebPreview(const QString &url, const QRectF &urlRect);
+ void clearPreview();
+
+private:
+ class PreviewController;
+ class PreviewItem;
+ PreviewController *controller;
+};
+
+class ContentsChatItemPrivate::PreviewController : public QObject {
+ Q_OBJECT
+public:
+ PreviewController(ContentsChatItem *contentsItem) : contentsItem(contentsItem), previewItem(0) {}
+ ~PreviewController();