X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fbuffer.cpp;h=a316ae15a9086cc8bb8b8c38454876af3a99a868;hp=cf764c1b574efe373b15a38862376784ae67f82a;hb=5d9e6f82037c37c560827bfd9d71bc9467fa7ccc;hpb=130ccf5033c21ca3ad0e0357a82953b5727bd0e9 diff --git a/src/client/buffer.cpp b/src/client/buffer.cpp index cf764c1b..a316ae15 100644 --- a/src/client/buffer.cpp +++ b/src/client/buffer.cpp @@ -1,11 +1,11 @@ /*************************************************************************** - * Copyright (C) 2005-07 by The Quassel 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 * @@ -17,121 +17,45 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ +#include #include "buffer.h" -#include "util.h" -#include "chatwidget.h" -#include "bufferwidget.h" -/* -Buffer::Buffer(QString netname, QString bufname) { - Buffer(BufferId(0, netname, bufname)); +#include "client.h" +#include "util.h" +Buffer::Buffer(BufferInfo bufferid, QObject *parent) + : QObject(parent), + _bufferInfo(bufferid) +{ } -*/ - -Buffer::Buffer(BufferId bufid) { - id = bufid; - _networkName = bufid.network(); - _bufferName = bufid.buffer(); - - if(_bufferName.isEmpty()) type = ServerBuffer; - else if(isChannelName(_bufferName)) type = ChannelBuffer; - else type = QueryBuffer; - active = false; -/* - QSettings s; - s.beginGroup(QString("GUI/BufferStates/%1/%2").arg(netname).arg(bufname)); - state->splitterState = s.value("Splitter").toByteArray(); - s.endGroup(); - */ - emit bufferUpdated(this); +BufferInfo Buffer::bufferInfo() const { + // still needed by the gui *sigh* to request the backlogs *sigh* + return _bufferInfo; } -Buffer::~Buffer() { - //delete widget; - /* - QSettings s; - s.beginGroup(QString("GUI/BufferStates/%1/%2").arg(networkName).arg(bufferName)); - s.setValue("Splitter", state->splitterState); - s.endGroup(); -*/ - //delete state; - emit bufferDestroyed(this); +QList Buffer::contents() const { + return layoutedMsgs; } -void Buffer::init() { - - +void Buffer::appendMsg(const Message &msg) { + AbstractUiMsg *m = Client::layoutMsg(msg); + layoutedMsgs.append(m); + emit msgAppended(m); } -QString Buffer::displayName() { - if(bufferType() == ServerBuffer) - return tr("status"); - else - return bufferName(); +void Buffer::prependMsg(const Message &msg) { + layoutQueue.append(msg); } -void Buffer::setActive(bool a) { - if(a != active) { - active = a; - emit bufferUpdated(this); +bool Buffer::layoutMsg() { + if(layoutQueue.count()) { + AbstractUiMsg *m = Client::layoutMsg(layoutQueue.takeFirst()); + layoutedMsgs.prepend(m); + emit msgPrepended(m); } + return layoutQueue.count(); } -void Buffer::appendChatLine(ChatLine *line) { - lines.append(line); - emit chatLineAppended(line); -} - -void Buffer::prependChatLine(ChatLine *line) { - lines.prepend(line); - emit chatLinePrepended(line); -} - -void Buffer::processUserInput(QString msg) { - // TODO User Input processing (plugins) -> well, this goes through MainWin into Core for processing... so... - emit userInput(id, msg); -} - -void Buffer::setTopic(QString t) { - _topic = t; - emit topicSet(t); - emit bufferUpdated(this); -} - -void Buffer::addNick(QString nick, VarMap props) { - if(nick == ownNick()) setActive(true); - nicks[nick] = props; - emit nickListChanged(nicks); -} - -void Buffer::updateNick(QString nick, VarMap props) { - nicks[nick] = props; - emit nickListChanged(nicks); -} - -void Buffer::renameNick(QString oldnick, QString newnick) { - QVariant v = nicks.take(oldnick); - nicks[newnick] = v; - emit nickListChanged(nicks); -} - -void Buffer::removeNick(QString nick) { - if(nick == ownNick()) setActive(false); - nicks.remove(nick); - emit nickListChanged(nicks); -} - -void Buffer::setOwnNick(QString nick) { - _ownNick = nick; - emit ownNickSet(nick); -} - -/****************************************************************************************/ - - -/****************************************************************************************/ -