X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatscene.h;h=c54c1862427b5fc54f4f98f4ca0e524b1d996636;hp=c4a8b0157cea635e8d9a26454403ce2084f9fa45;hb=15d94f850d7e82b9f9f65ec162d9db13f750d23f;hpb=6e73ba4a19fd92038e1ea749125767661fb34e27 diff --git a/src/qtui/chatscene.h b/src/qtui/chatscene.h index c4a8b015..c54c1862 100644 --- a/src/qtui/chatscene.h +++ b/src/qtui/chatscene.h @@ -88,18 +88,22 @@ public: inline ChatLine *chatLine(const QModelIndex &index) const { return _lines.value(index.row()); } //! Find the ChatLine belonging to a MsgId - /** Searches for the ChatLine belonging to a MsgId. + /** Searches for the ChatLine belonging to a MsgId. If there are more than one ChatLine with the same msgId, + * the first one is returned. * Note that this method performs a binary search, hence it has as complexity of O(log n). * If matchExact is false, and we don't have an exact match for the given msgId, we return the visible line right * above the requested one. * \param msgId The message ID to look for * \param matchExact Whether we find only exact matches + * \param ignoreDayChange Whether we ignore day change messages * \return The ChatLine corresponding to the given MsgId */ - ChatLine *chatLine(MsgId msgId, bool matchExact = true) const; + ChatLine *chatLine(MsgId msgId, bool matchExact = true, bool ignoreDayChange = true) const; inline ChatLine *lastLine() const { return _lines.count() ? _lines.last() : 0; } + inline MarkerLineItem *markerLine() const { return _markerLine; } + inline bool isSingleBufferScene() const { return _singleBufferId.isValid(); } inline BufferId singleBufferId() const { return _singleBufferId; } bool containsBuffer(const BufferId &id) const; @@ -119,15 +123,14 @@ public: bool isScrollingAllowed() const; - virtual bool event(QEvent *e); - public slots: void updateForViewport(qreal width, qreal height); void setWidth(qreal width); void layout(int start, int end, qreal width); void setMarkerLineVisible(bool visible = true); - void setMarkerLine(MsgId msgId); + 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); @@ -195,7 +198,7 @@ private: qreal _viewportHeight; MarkerLineItem *_markerLine; - bool _markerLineValid, _markerLineVisible; + bool _markerLineVisible, _markerLineValid, _markerLineJumpPending; ColumnHandleItem *_firstColHandle, *_secondColHandle; qreal _firstColHandlePos, _secondColHandlePos;