/***************************************************************************
- * 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 *
#include "buffer.h"
#include "client.h"
+#include "ircchannel.h"
+#include "nickmodel.h"
#include "util.h"
Buffer::Buffer(BufferInfo bufferid, QObject *parent)
: QObject(parent),
_bufferInfo(bufferid),
- _active(false)
+ _active(false),
+ _ircChannel(0), _nickModel(0)
{
if(bufferid.buffer().isEmpty())
_type = StatusType;
else
_type = QueryType;
+ _nickModel = new NickModel(0, this);
/*
QSettings s;
s.beginGroup(QString("GUI/BufferStates/%1/%2").arg(netname).arg(bufname));
return bufferInfo().network();
}
-QString Buffer::bufferName() const {
- return bufferInfo().buffer();
-}
-
-QString Buffer::displayName() const {
+QString Buffer::name() const {
if(bufferType() == StatusType)
return tr("Status Buffer");
else
- return bufferName();
+ return bufferInfo().buffer();
}
QList<AbstractUiMsg *> Buffer::contents() const {
}
QString Buffer::topic() const {
- // FIXME check if we got a networkInfo() object
+ if(ircChannel()) return ircChannel()->topic();
return QString();
}
QString Buffer::ownNick() const {
- // FIXME check if we got a networkInfo() object
+ // FIXME if(ircChannel()) return ircChannel()->ownNick();
return QString();
}
emit userInput(_bufferInfo, msg);
}
+NickModel *Buffer::nickModel() const {
+ return _nickModel;
+}
+
+IrcChannel *Buffer::ircChannel() const {
+ return _ircChannel;
+}
+
+void Buffer::setIrcChannel(IrcChannel *ircchan) {
+ if(_ircChannel) {
+ disconnect(_ircChannel, 0, this, 0);
+ }
+ _ircChannel = ircchan;
+ if(_ircChannel) {
+ emit topicSet(_ircChannel->topic());
+ connect(_ircChannel, SIGNAL(topicSet(QString)), this, SIGNAL(topicSet(QString)));
+ connect(_ircChannel, SIGNAL(destroyed()), this, SLOT(setIrcChannel()));
+ }
+ _nickModel->setIrcChannel(ircChannel());
+}
+
// no longer needed
// back reference:
-// void Buffer::setTopic(QString t) {
-// _topic = t;
-// emit topicSet(t);
-// emit bufferUpdated(this);
-// }
// void Buffer::addNick(QString nick, QVariantMap props) {
// if(nick == ownNick()) setActive(true);