X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatscene.h;h=fa441023c8be96bcb99296a13fe4c906c57024b5;hp=66026c1bc323b43ee98c7237097f8f0de05cdd20;hb=fc81975a545211f3ccd3d25e266477adad2c9445;hpb=62192fb6cd9cc211b5b9fe844c9b4c2f98f923cc diff --git a/src/qtui/chatscene.h b/src/qtui/chatscene.h index 66026c1b..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,6 +47,7 @@ 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 ColumnHandleItem *firstColumnHandle() const { return firstColHandle; } @@ -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