virtual void addActionsToMenu(QMenu *, const QPointF &pos);
- virtual bool event(QEvent *event);
-
inline bool isMarkerLineVisible() const { return _markerLineVisible; }
inline ChatLine *markedLine() const { return _markedLine; }
+ //! Tell the view that this ChatLine has cached data
+ /** ChatLines cache some layout data that should be cleared as soon as it's no
+ * longer visible. A ChatLine caching data registers itself with this method to
+ * tell the view about it. The view will call ChatLine::clearCache() when
+ * appropriate.
+ * \param line The ChatLine having cached data
+ */
+ void setHasCache(ChatLine *line, bool hasCache = true);
+
public slots:
inline virtual void clear() {}
void zoomIn();
void setMarkedLine(ChatLine *line);
protected:
+ virtual bool event(QEvent *event);
virtual void resizeEvent(QResizeEvent *event);
+ virtual void scrollContentsBy(int dx, int dy);
protected slots:
virtual void verticalScrollbarChanged(int);
private slots:
void lastLineChanged(QGraphicsItem *chatLine, qreal offset);
void adjustSceneRect();
+ void checkChatLineCaches();
void mouseMoveWhileSelecting(const QPointF &scenePos);
void scrollTimerTimeout();
void invalidateFilter();
bool _invalidateFilter;
bool _markerLineVisible;
ChatLine *_markedLine;
+ QSet<ChatLine *> _linesWithCache;
};