X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtgui%2Fbufferwidget.cpp;h=f1a8946c59619ea95c0248baedc1ae8cb26e7e14;hp=807dacf1391e2528ed26497acf6311509e677b80;hb=73edffb5f0f6ecae4118c36a7ca2c0d479b7f8c6;hpb=13b2affbdccd1d52479e49affdb81a77258392a6 diff --git a/src/qtgui/bufferwidget.cpp b/src/qtgui/bufferwidget.cpp index 807dacf1..f1a8946c 100644 --- a/src/qtgui/bufferwidget.cpp +++ b/src/qtgui/bufferwidget.cpp @@ -20,18 +20,13 @@ #include "bufferwidget.h" #include "buffer.h" +#include "chatline.h" #include "chatwidget.h" #include "settings.h" -#include "mainwin.h" BufferWidget::BufferWidget(QWidget *parent) : QWidget(parent) { ui.setupUi(this); - //layoutThread->start(); - //connect(this, SIGNAL(aboutToClose()), layoutThread, SLOT(quit())); - //connect(this, SIGNAL(layoutMessages(LayoutTask)), layoutThread, SLOT(processTask(LayoutTask)), Qt::QueuedConnection); - //layoutThread->start(); - curBuf = 0; //setBaseSize(QSize(600,400)); //setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); @@ -41,17 +36,10 @@ BufferWidget::BufferWidget(QWidget *parent) : QWidget(parent) { } void BufferWidget::init() { - //layoutThread = new LayoutThread(); - //layoutThread = ::layoutThread; - //connect(layoutThread, SIGNAL(taskProcessed(LayoutTask)), this, SLOT(messagesLayouted(LayoutTask))); - //layoutThread->start(); - //while(!layoutThread->isRunning()) {}; + } BufferWidget::~BufferWidget() { - //emit aboutToClose(); - //layoutThread->wait(10000); - //delete layoutThread; foreach(BufferState *s, states.values()) { delete s; } @@ -93,9 +81,14 @@ void BufferWidget::setBuffer(Buffer *buf) { states[buf] = s; state = s; state->chatWidget->init(networkName, bufferName); - state->chatWidget->setContents(buf->contents()); - connect(buf, SIGNAL(chatLineAppended(ChatLine *)), state->chatWidget, SLOT(appendChatLine(ChatLine *))); - connect(buf, SIGNAL(chatLinePrepended(ChatLine *)), state->chatWidget, SLOT(prependChatLine(ChatLine *))); + QList lines; + QList msgs = buf->contents(); + foreach(AbstractUiMsg *msg, msgs) { + lines.append(dynamic_cast(msg)); + } + state->chatWidget->setContents(lines); + connect(buf, SIGNAL(msgAppended(AbstractUiMsg *)), state->chatWidget, SLOT(appendMsg(AbstractUiMsg *))); + connect(buf, SIGNAL(msgPrepended(AbstractUiMsg *)), state->chatWidget, SLOT(prependMsg(AbstractUiMsg *))); connect(buf, SIGNAL(topicSet(QString)), this, SLOT(setTopic(QString))); connect(buf, SIGNAL(ownNickSet(QString)), this, SLOT(setOwnNick(QString))); ui.stackedWidget->addWidget(s->page); @@ -116,28 +109,6 @@ void BufferWidget::setBuffer(Buffer *buf) { updateTitle(); } -/* -void BufferWidget::prependMessages(Buffer *buf, QList messages) { - LayoutTask task; - task.messages = messages; - task.buffer = buf; - task.net = buf->networkName(); - task.buf = buf->bufferName(); - //emit layoutMessages(task); - layoutThread->processTask(task); -} - -void BufferWidget::messagesLayouted(LayoutTask task) { - if(states.contains(task.buffer)) { - states[task.buffer]->chatWidget->prependChatLines(task.lines); - task.buffer->prependMessages(task.messages); - } else { - msgCache[task.buffer] = task.messages + msgCache[task.buffer]; - chatLineCache[task.buffer] = task.lines + chatLineCache[task.buffer]; - } -} -*/ - void BufferWidget::saveState() { foreach(Buffer *buf, states.keys()) { BufferState *s = states[buf];