+QList<NetworkInfo *> Client::networkInfos() {
+ return instance()->_networkInfo.values();
+}
+
+NetworkInfo *Client::networkInfo(uint networkid) {
+ if(instance()->_networkInfo.contains(networkid))
+ return instance()->_networkInfo[networkid];
+ else
+ return 0;
+}
+
+QList<BufferInfo> Client::allBufferInfos() {
+ QList<BufferInfo> bufferids;
+ foreach(Buffer *buffer, buffers()) {
+ bufferids << buffer->bufferInfo();
+ }
+ return bufferids;
+}
+
+QList<Buffer *> Client::buffers() {
+ return instance()->_buffers.values();
+}
+
+Buffer *Client::buffer(uint bufferUid) {
+ if(instance()->_buffers.contains(bufferUid))
+ return instance()->_buffers[bufferUid];
+ else
+ return 0;
+}
+
+Buffer *Client::buffer(BufferInfo id) {
+ Buffer *buff = buffer(id.uid());
+
+ if(!buff) {
+ Client *client = Client::instance();
+ buff = new Buffer(id, client);
+
+ connect(buff, SIGNAL(userInput(BufferInfo, QString)),
+ client, SLOT(userInput(BufferInfo, QString)));
+ connect(buff, SIGNAL(bufferUpdated(Buffer *)),
+ client, SIGNAL(bufferUpdated(Buffer *)));
+ connect(buff, SIGNAL(destroyed()),
+ client, SLOT(bufferDestroyed()));
+ client->_buffers[id.uid()] = buff;
+ emit client->bufferUpdated(buff);
+ }
+ Q_ASSERT(buff);
+ return buff;
+}
+
+// FIXME switch to netids!
+// WHEN IS THIS NEEDED ANYHOW!?
+// ...only for finding the Buffer for a channel, I guess...
+BufferInfo Client::bufferInfo(QString net, QString buf) {
+ foreach(Buffer *buffer_, buffers()) {
+ BufferInfo bufferInfo = buffer_->bufferInfo();
+ if(!bufferInfo.network().compare(net, Qt::CaseInsensitive) && !bufferInfo.buffer().compare(buf, Qt::CaseInsensitive))
+ return bufferInfo;
+ }
+ Q_ASSERT(false); // should never happen!
+ return BufferInfo();
+}
+
+BufferInfo Client::statusBufferInfo(QString net) {
+ return bufferInfo(net, "");
+}
+
+BufferTreeModel *Client::bufferModel() {
+ return instance()->_bufferModel;
+}
+
+SignalProxy *Client::signalProxy() {
+ return instance()->_signalProxy;
+}
+
+// ==============================
+// Constructor / Decon
+// ==============================
+Client::Client(QObject *parent)
+ : QObject(parent),
+ socket(0),
+ _signalProxy(new SignalProxy(SignalProxy::Client, this)),
+ mainUi(0),
+ _bufferModel(0),
+ connectedToCore(false)
+{
+}
+
+Client::~Client() {
+
+}
+