X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatscene.h;h=fa441023c8be96bcb99296a13fe4c906c57024b5;hp=a5428434b62311ce0e0f1435e4e89a22e23ec758;hb=fc81975a545211f3ccd3d25e266477adad2c9445;hpb=70ededc490cb201e52b6d8ca4c2364d4a001b6c4 diff --git a/src/qtui/chatscene.h b/src/qtui/chatscene.h index a5428434..fa441023 100644 --- a/src/qtui/chatscene.h +++ b/src/qtui/chatscene.h @@ -26,7 +26,7 @@ #include #include "columnhandleitem.h" - +#include "messagefilter.h" class AbstractUiMsg; class ChatItem; @@ -47,10 +47,11 @@ public: int sectionByScenePos(int x); inline int sectionByScenePos(const QPoint &pos) { return sectionByScenePos(pos.x()); } inline bool isSingleBufferScene() const { return _singleBufferScene; } + inline bool containsBuffer(const BufferId &id) const; inline ChatLine *chatLine(int row) { return (row < _lines.count()) ? _lines[row] : 0; } - inline QRectF firstColumnHandleRect() const { return firstColHandle->boundingRect().translated(firstColHandle->x(), 0); } - inline QRectF secondColumnHandleRect() const { return secondColHandle->boundingRect().translated(secondColHandle->x(), 0); } + inline ColumnHandleItem *firstColumnHandle() const { return firstColHandle; } + inline ColumnHandleItem *secondColumnHandle() const { return secondColHandle; } public slots: void setWidth(qreal, bool forceReposition = false); @@ -88,6 +89,11 @@ private: QList _lines; bool _singleBufferScene; + // calls to QChatScene::sceneRect() are very expensive. As we manage the scenerect ourselves + // we store the size in a member variable. + QRectF _sceneRect; + void updateSceneRect(const QRectF &rect); + ColumnHandleItem *firstColHandle, *secondColHandle; qreal firstColHandlePos, secondColHandlePos; @@ -101,4 +107,8 @@ private: int _lastBacklogSize; }; +bool ChatScene::containsBuffer(const BufferId &id) const { + return qobject_cast(model()) ? qobject_cast(model())->containsBuffer(id) : false; +} + #endif