/***************************************************************************
- * 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 *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
+#include <QDebug>
#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 to process user input... *sigh*
+ // ... and for 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<AbstractUiMsg *> 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);
}
-}
-
-void Buffer::appendChatLine(ChatLine *line) {
- lines.append(line);
- emit chatLineAppended(line);
-}
-
-void Buffer::prependChatLine(ChatLine *line) {
- lines.prepend(line);
- emit chatLinePrepended(line);
+ return layoutQueue.count();
}
void Buffer::processUserInput(QString msg) {
// TODO User Input processing (plugins) -> well, this goes through MainWin into Core for processing... so...
- emit userInput(id, msg);
+ emit userInput(_bufferInfo, 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);
-}
-
-/****************************************************************************************/
-
-
-/****************************************************************************************/
-