+ /**
+ * Gets whether to re-add hidden brackets around sender for all message types
+ *
+ * Used within the Chat Monitor as the normal message prefixes are overridden.
+ *
+ * @return Whether to re-add hidden brackets around sender for all message types
+ */
+ inline bool alwaysBracketSender() const { return _alwaysBracketSender; }
+ /**
+ * Sets whether to re-add hidden brackets around sender for all message types
+ *
+ * @see ChatScene::alwaysBracketSender()
+ *
+ * @param brackets Sets whether to re-add hidden brackets around sender for all message types
+ */
+ inline void setAlwaysBracketSender(bool alwaysBracket) { _alwaysBracketSender = alwaysBracket; }
+
+ QString selection() const;
+ bool hasSelection() const;
+ bool hasGlobalSelection() const;
+ bool isPosOverSelection(const QPointF &) const;
+ bool isGloballySelecting() const;
+ void initiateDrag(QWidget *source);
+
+ bool isScrollingAllowed() const;
+
+public slots:
+ void updateForViewport(qreal width, qreal height);
+ void setWidth(qreal width);
+ void layout(int start, int end, qreal width);
+
+ void resetColumnWidths();
+
+ void setMarkerLineVisible(bool visible = true);
+ void setMarkerLine(MsgId msgId = MsgId());
+ void jumpToMarkerLine(bool requestBacklog);
+
+ // these are used by the chatitems to notify the scene and manage selections
+ void setSelectingItem(ChatItem *item);
+ ChatItem *selectingItem() const { return _selectingItem; }
+ void startGlobalSelection(ChatItem *item, const QPointF &itemPos);
+ void clearGlobalSelection();
+ void clearSelection();
+ void selectionToClipboard(QClipboard::Mode = QClipboard::Clipboard);
+ void stringToClipboard(const QString &str, QClipboard::Mode = QClipboard::Clipboard);
+
+ void webSearchOnSelection();
+
+ void requestBacklog();
+
+#if defined HAVE_WEBKIT || defined HAVE_WEBENGINE
+ void loadWebPreview(ChatItem *parentItem, const QUrl &url, const QRectF &urlRect);
+ void clearWebPreview(ChatItem *parentItem = 0);
+#endif