X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatview.h;h=51522d2355152920845b5e6c9306a2ee41618d4b;hp=4fb3661e2a6b84cb7fae7ac414176615db5a1b75;hb=b1d9c3ea56467245c910ac1de1252c2a91c234f0;hpb=57982f5802c957e768ce842888591115694fcbef diff --git a/src/qtui/chatview.h b/src/qtui/chatview.h index 4fb3661e..51522d23 100644 --- a/src/qtui/chatview.h +++ b/src/qtui/chatview.h @@ -65,11 +65,18 @@ public: /** Using this method more efficient than calling visibleChatLinesSorted() and taking its last element. * \return The last fully visible ChatLine in the view */ - ChatLine *lastVisibleChatLine() const; + ChatLine *lastVisibleChatLine(bool ignoreDayChange = false) const; virtual void addActionsToMenu(QMenu *, const QPointF &pos); - virtual bool event(QEvent *event); + //! 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() {} @@ -77,8 +84,14 @@ public slots: void zoomOut(); void zoomOriginal(); + void setMarkerLineVisible(bool visible = true); + void setMarkerLine(MsgId msgId); + void jumpToMarkerLine(bool requestBacklog); + protected: + virtual bool event(QEvent *event); virtual void resizeEvent(QResizeEvent *event); + virtual void scrollContentsBy(int dx, int dy); protected slots: virtual void verticalScrollbarChanged(int); @@ -86,9 +99,11 @@ protected slots: private slots: void lastLineChanged(QGraphicsItem *chatLine, qreal offset); void adjustSceneRect(); + void checkChatLineCaches(); void mouseMoveWhileSelecting(const QPointF &scenePos); void scrollTimerTimeout(); void invalidateFilter(); + void markerLineSet(BufferId buffer, MsgId msg); private: void init(MessageFilter *filter); @@ -100,6 +115,7 @@ private: QTimer _scrollTimer; int _scrollOffset; bool _invalidateFilter; + QSet _linesWithCache; };