#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;
#ifndef _CHATSCENE_H_
#define _CHATSCENE_H_
+#include <QAbstractItemModel>
#include <QGraphicsScene>
-#include "messagemodel.h"
-
class AbstractUiMsg;
class Buffer;
class ChatItem;
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);
private:
int _width, _height;
int _timestampWidth, _senderWidth;
- MessageModel *_model;
+ QAbstractItemModel *_model;
QList<ChatLine *> _lines;
};
#include "chatscene.h"
#include "chatview.h"
#include "client.h"
+#include "messagefilter.h"
#include "quasselui.h"
ChatView::ChatView(Buffer *buf, QWidget *parent) : QGraphicsView(parent), AbstractChatView() {
setOptimizationFlags(QGraphicsView::DontClipPainter
|QGraphicsView::DontSavePainterState
|QGraphicsView::DontAdjustForAntialiasing);
- _scene = new ChatScene(Client::messageModel(), this);
+
+ QList<BufferId> 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);
void ChatView::resizeEvent(QResizeEvent *event) {
scene()->setWidth(event->size().width());
- qDebug() << "resize";
}
void ChatView::sceneHeightChanged(int h) {