X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fchatview.cpp;h=77a0976f42d3b71ea7b30c432a06b952534bc724;hb=130fde74cee428ec2e3285db89c4348c3091b2aa;hp=6d4e5ea24f17fe5decc321cfe1c3699603fef06d;hpb=dbefd590650e9053c7a1513a5f49aad3e582108a;p=quassel.git diff --git a/src/qtui/chatview.cpp b/src/qtui/chatview.cpp index 6d4e5ea2..77a0976f 100644 --- a/src/qtui/chatview.cpp +++ b/src/qtui/chatview.cpp @@ -29,15 +29,21 @@ #include "messagefilter.h" #include "quasselui.h" -ChatView::ChatView(Buffer *buf, QWidget *parent) : QGraphicsView(parent), AbstractChatView() { +ChatView::ChatView(BufferId bufferId, QWidget *parent) + : QGraphicsView(parent), + AbstractChatView() +{ QList filterList; - filterList.append(buf->bufferInfo().bufferId()); + filterList.append(bufferId); MessageFilter *filter = new MessageFilter(Client::messageModel(), filterList, this); init(filter); } -ChatView::ChatView(MessageFilter *filter, QWidget *parent) : QGraphicsView(parent), AbstractChatView() { +ChatView::ChatView(MessageFilter *filter, QWidget *parent) + : QGraphicsView(parent), + AbstractChatView() +{ init(filter); } @@ -55,18 +61,6 @@ void ChatView::init(MessageFilter *filter) { connect(verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(verticalScrollbarChanged(int))); } -ChatView::~ChatView() { - -} - -ChatScene *ChatView::scene() const { - return _scene; -} - -void ChatView::clear() { - -} - void ChatView::resizeEvent(QResizeEvent *event) { scene()->setWidth(event->size().width() - 2); // FIXME figure out why we have to hardcode the -2 here verticalScrollBar()->setValue(verticalScrollBar()->maximum()); @@ -108,3 +102,15 @@ void ChatView::verticalScrollbarChanged(int newPos) { scene()->setIsFetchingBacklog(vbar->value() == vbar->minimum()); } } + +MsgId ChatView::lastMsgId() const { + if(!scene()) + return MsgId(); + + QAbstractItemModel *model = scene()->model(); + if(!model || model->rowCount() == 0) + return MsgId(); + + + return model->data(model->index(model->rowCount() - 1, 0), MessageModel::MsgIdRole).value(); +}