From 920feae12b62b749299014ce85241165e09b7f4b Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Thu, 22 May 2008 19:09:14 +0000 Subject: [PATCH 1/1] ChatView now uses MessageFilter to display only messages for its buffer. QSortFilterProxyModel goodness! \o/ --- src/qtui/chatscene.cpp | 2 +- src/qtui/chatscene.h | 9 ++++----- src/qtui/chatview.cpp | 10 +++++++--- 3 files changed, 12 insertions(+), 9 deletions(-) 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) { -- 2.20.1