#include <QGraphicsSceneMouseEvent>
#include <QPersistentModelIndex>
-#include "buffer.h"
#include "chatitem.h"
#include "chatline.h"
#include "chatlinemodelitem.h"
#include "client.h"
#include "clientbacklogmanager.h"
#include "columnhandleitem.h"
+#include "messagefilter.h"
#include "qtui.h"
#include "qtuisettings.h"
ChatScene::ChatScene(QAbstractItemModel *model, const QString &idString, QObject *parent)
: QGraphicsScene(parent),
- _idString(idString),
- _model(model)
+ _idString(idString),
+ _width(0),
+ _height(0),
+ _model(model),
+ _singleBufferScene(false),
+ _selectingItem(0),
+ _lastItem(0),
+ _selectionStart(-1),
+ _isSelecting(false),
+ _fetchingBacklog(false)
{
- _width = 0;
- _selectingItem = 0;
- _isSelecting = false;
- _selectionStart = -1;
- _fetchingBacklog = false;
+ MessageFilter *filter = qobject_cast<MessageFilter*>(model);
+ if(filter) {
+ _singleBufferScene = filter->isSingleBufferFilter();
+ }
connect(this, SIGNAL(sceneRectChanged(const QRectF &)), this, SLOT(rectChanged(const QRectF &)));
_lastBacklogSize = model()->rowCount();
}
}
+
+int ChatScene::sectionByScenePos(int x) {
+ if(x < firstColHandlePos)
+ return ChatLineModel::TimestampColumn;
+ if(x < secondColHandlePos)
+ return ChatLineModel::SenderColumn;
+
+ return ChatLineModel::ContentsColumn;
+}