X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatscene.cpp;h=872ea9221bf9e35a4f3440637250c075b6b395d3;hp=89145403a573295c1cfee976741de87523079455;hb=0b9f74984780aacbe85ca04c44ec6304c86557c2;hpb=70706ff642683d03ff091cab25d984ec7d9612de diff --git a/src/qtui/chatscene.cpp b/src/qtui/chatscene.cpp index 89145403..872ea922 100644 --- a/src/qtui/chatscene.cpp +++ b/src/qtui/chatscene.cpp @@ -1,11 +1,11 @@ /*************************************************************************** - * 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 * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * + * (at your option) version 3. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -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++) { + Chatline *line = new Chatline(model->index(i, 0)); + addItem(line); + line->setPos(30, i*line->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); + */ }