+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();
+ Buffer *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(bufferDestroyed(Buffer *)),
+ client, SIGNAL(bufferDestroyed(Buffer *)));
+ connect(buff, SIGNAL(bufferDestroyed(Buffer *)),
+ client, SLOT(removeBuffer(Buffer *)));
+
+ client->_buffers[id.uid()] = buff;
+ emit client->bufferUpdated(buff);
+ }
+
+ return buff;
+}
+
+// FIXME switch to netids!
+// WHEN IS THIS NEEDED ANYHOW!?
+BufferInfo Client::bufferInfo(QString net, QString buf) {
+ foreach(Buffer *buffer_, buffers()) {
+ BufferInfo bufferInfo = buffer_->bufferInfo();
+ if(bufferInfo.network() == net && bufferInfo.buffer() == buf)
+ 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, 0, this)),
+ mainUi(0),
+ _bufferModel(0),
+ connectedToCore(false)
+{
+}
+
+Client::~Client() {
+}
+