qtui: Properly render hovered-upon clickables
[quassel.git] / src / qtui / chatitem.h
index 04931f1..a6a94b2 100644 (file)
@@ -112,7 +112,6 @@ protected:
     virtual UiStyle::FormatList formatList() const;
 
     void paintBackground(QPainter *);
-    QVector<QTextLayout::FormatRange> selectionFormats() const;
     virtual QVector<QTextLayout::FormatRange> additionalFormats() const;
     void overlayFormat(UiStyle::FormatList &fmtList, quint16 start, quint16 end, UiStyle::FormatType overlayFmt) const;
 
@@ -124,6 +123,9 @@ protected:
     inline void setSelectionMode(SelectionMode mode) { _selectionMode = mode; }
     void setSelection(SelectionMode mode, qint16 selectionStart, qint16 selectionEnd);
 
+    virtual bool hasActiveClickable() const;
+    virtual std::pair<quint16, quint16> activeClickableRange() const;
+
     qint16 posToCursor(const QPointF &pos) const;
 
     inline void setGeometry(qreal width, qreal height) { clearCache(); _boundingRect.setSize(QSizeF(width, height)); }
@@ -206,11 +208,12 @@ protected:
     virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
     virtual void handleClick(const QPointF &pos, ChatScene::ClickMode clickMode);
 
+    virtual bool hasActiveClickable() const;
+    virtual std::pair<quint16, quint16> activeClickableRange() const;
+
     virtual void addActionsToMenu(QMenu *menu, const QPointF &itemPos);
     virtual void copyLinkToClipboard();
 
-    virtual QVector<QTextLayout::FormatRange> additionalFormats() const;
-
     virtual void initLayout(QTextLayout *layout) const;
     virtual void doLayout(QTextLayout *layout) const;
     virtual UiStyle::FormatList formatList() const;