From: Manuel Nickschas Date: Thu, 22 May 2008 19:09:14 +0000 (+0000) Subject: ChatView now uses MessageFilter to display only messages for its buffer. X-Git-Tag: 0.3.0~404 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=920feae12b62b749299014ce85241165e09b7f4b;hp=fadb23192f41a04c6a8e16e69576c675a8c40c0a ChatView now uses MessageFilter to display only messages for its buffer. QSortFilterProxyModel goodness! \o/ --- diff --git a/src/qtui/chatscene.cpp b/src/qtui/chatscene.cpp index 73d0bc84..10ebfc7a 100644 --- a/src/qtui/chatscene.cpp +++ b/src/qtui/chatscene.cpp @@ -27,7 +27,7 @@ #include "chatscene.h" #include "quasselui.h" -ChatScene::ChatScene(MessageModel *model, QObject *parent) : QGraphicsScene(parent), _model(model) { +ChatScene::ChatScene(QAbstractItemModel *model, QObject *parent) : QGraphicsScene(parent), _model(model) { _width = 0; _timestampWidth = 60; _senderWidth = 80; diff --git a/src/qtui/chatscene.h b/src/qtui/chatscene.h index a0bcefc0..5f8057ab 100644 --- a/src/qtui/chatscene.h +++ b/src/qtui/chatscene.h @@ -21,10 +21,9 @@ #ifndef _CHATSCENE_H_ #define _CHATSCENE_H_ +#include #include -#include "messagemodel.h" - class AbstractUiMsg; class Buffer; class ChatItem; @@ -35,11 +34,11 @@ class ChatScene : public QGraphicsScene { Q_OBJECT public: - ChatScene(MessageModel *model, QObject *parent); + ChatScene(QAbstractItemModel *model, QObject *parent); virtual ~ChatScene(); Buffer *buffer() const; - inline MessageModel *model() const { return _model; } + inline QAbstractItemModel *model() const { return _model; } public slots: void setWidth(int); @@ -54,7 +53,7 @@ class ChatScene : public QGraphicsScene { private: int _width, _height; int _timestampWidth, _senderWidth; - MessageModel *_model; + QAbstractItemModel *_model; QList _lines; }; diff --git a/src/qtui/chatview.cpp b/src/qtui/chatview.cpp index a4582546..59b5681f 100644 --- a/src/qtui/chatview.cpp +++ b/src/qtui/chatview.cpp @@ -25,6 +25,7 @@ #include "chatscene.h" #include "chatview.h" #include "client.h" +#include "messagefilter.h" #include "quasselui.h" ChatView::ChatView(Buffer *buf, QWidget *parent) : QGraphicsView(parent), AbstractChatView() { @@ -32,9 +33,13 @@ ChatView::ChatView(Buffer *buf, QWidget *parent) : QGraphicsView(parent), Abstra setOptimizationFlags(QGraphicsView::DontClipPainter |QGraphicsView::DontSavePainterState |QGraphicsView::DontAdjustForAntialiasing); - _scene = new ChatScene(Client::messageModel(), this); + + QList filterList; + filterList.append(buf->bufferInfo().bufferId()); + MessageFilter *filter = new MessageFilter(Client::messageModel(), filterList, this); + + _scene = new ChatScene(filter, this); connect(_scene, SIGNAL(heightChanged(int)), this, SLOT(sceneHeightChanged(int))); - //_scene->setWidth(width()); setScene(_scene); setSceneRect(0, 0, width(), 0); @@ -52,7 +57,6 @@ ChatScene *ChatView::scene() const { void ChatView::resizeEvent(QResizeEvent *event) { scene()->setWidth(event->size().width()); - qDebug() << "resize"; } void ChatView::sceneHeightChanged(int h) {