X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fchatscene.cpp;h=a78c2ba8de2859082babee03bd99c7fc96862ac0;hb=cc7f376eb105f7bf931fb7f96c9601a7b3f69511;hp=306ffb342633f02384b3600b8a6978ec96c74939;hpb=d6b056e936ec441258d291b7a8af7b83f9f53016;p=quassel.git diff --git a/src/qtui/chatscene.cpp b/src/qtui/chatscene.cpp index 306ffb34..a78c2ba8 100644 --- a/src/qtui/chatscene.cpp +++ b/src/qtui/chatscene.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-07 by the Quassel IRC Team * + * Copyright (C) 2005-08 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -19,21 +19,23 @@ ***************************************************************************/ #include +#include #include "buffer.h" #include "chatitem.h" -#include "chatline.h" +#include "chatlinemodelitem.h" #include "chatscene.h" #include "quasselui.h" -ChatScene::ChatScene(Buffer *buf, QObject *parent) : QGraphicsScene(parent) { - _buffer = buf; - - foreach(AbstractUiMsg *msg, buf->contents()) { - appendMsg(msg); +ChatScene::ChatScene(MessageModel *model, QObject *parent) : QGraphicsScene(parent), _model(model) { + connect(model, SIGNAL(rowsInserted(const QModelIndex &, int, int)), this, SLOT(rowsInserted(const QModelIndex &, int, int))); + for(int i = 0; i < model->rowCount(); i++) { + ChatItem *item = new ChatItem(QPersistentModelIndex(model->index(i, 2))); + addItem(item); + item->setPos(30, i*item->boundingRect().height()); } - connect(buf, SIGNAL(msgAppended(AbstractUiMsg *)), this, SLOT(appendMsg(AbstractUiMsg *))); - connect(buf, SIGNAL(msgPrepended(AbstractUiMsg *)), this, SLOT(prependMsg(AbstractUiMsg *))); + + } ChatScene::~ChatScene() { @@ -41,24 +43,9 @@ ChatScene::~ChatScene() { } -void ChatScene::appendMsg(AbstractUiMsg * msg) { - ChatLine *line = dynamic_cast(msg); - Q_ASSERT(line); - _lines.append(line); - addItem(line); - line->setPos(0, _lines.count() * 30); - line->setColumnWidths(80, 80, 400); -} - -void ChatScene::prependMsg(AbstractUiMsg * msg) { - ChatLine *line = dynamic_cast(msg); - Q_ASSERT(line); qDebug() << "prepending"; - _lines.prepend(line); - addItem(line); - line->setPos(0, _lines.count() * 30); -} void ChatScene::mousePressEvent ( QGraphicsSceneMouseEvent * mouseEvent ) { + /* qDebug() << "recv" << mouseEvent->scenePos(); ChatLine *line = static_cast(itemAt(mouseEvent->scenePos())); ChatItem *item = static_cast(itemAt(mouseEvent->scenePos())); @@ -66,4 +53,5 @@ void ChatScene::mousePressEvent ( QGraphicsSceneMouseEvent * mouseEvent ) { if(line) { line->myMousePressEvent(mouseEvent); } else QGraphicsScene::mousePressEvent(mouseEvent); + */ }