+#if defined HAVE_WEBKIT || defined HAVE_WEBENGINE
+ void loadWebPreview(ChatItem* parentItem, const QUrl& url, const QRectF& urlRect);
+ void clearWebPreview(ChatItem* parentItem = nullptr);
+#endif
+
+signals:
+ void lastLineChanged(QGraphicsItem* item, qreal offset);
+ void layoutChanged(); // indicates changes to the scenerect due to resizing of the contentsitems
+ void mouseMoveWhileSelecting(const QPointF& scenePos);
+
+protected:
+ void contextMenuEvent(QGraphicsSceneContextMenuEvent* contextMenuEvent) override;
+ void mouseMoveEvent(QGraphicsSceneMouseEvent* mouseEvent) override;
+ void mousePressEvent(QGraphicsSceneMouseEvent* mouseEvent) override;
+ void mouseReleaseEvent(QGraphicsSceneMouseEvent* mouseEvent) override;
+ void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* mouseEvent) override;
+ virtual void handleClick(Qt::MouseButton button, const QPointF& scenePos);
+
+protected slots:
+ void rowsInserted(const QModelIndex&, int, int);
+ void rowsAboutToBeRemoved(const QModelIndex&, int, int);
+ void dataChanged(const QModelIndex&, const QModelIndex&);
+
+private slots:
+ void firstHandlePositionChanged(qreal xpos);
+ void secondHandlePositionChanged(qreal xpos);
+#if defined HAVE_WEBKIT || defined HAVE_WEBENGINE
+ void webPreviewNextStep();
+#endif
+ void showWebPreviewChanged();
+
+ /**
+ * Updates the local setting cache of whether or not to show sender brackets
+ */
+ void showSenderBracketsChanged();
+
+ /**
+ * Updates the local setting cache of whether or not to use the custom timestamp format
+ */
+ void useCustomTimestampFormatChanged();