This is it, the long-awaited huge commit with the new Network handling.
[quassel.git] / src / client / client.cpp
index 772601f..4832549 100644 (file)
@@ -29,7 +29,6 @@
 #include "network.h"
 #include "networkmodel.h"
 #include "buffermodel.h"
-#include "nickmodel.h"
 #include "quasselui.h"
 #include "signalproxy.h"
 #include "util.h"
@@ -61,7 +60,6 @@ Client::Client(QObject *parent)
     mainUi(0),
     _networkModel(0),
     _bufferModel(0),
-    _nickModel(0),
     _connectedToCore(false),
     _syncedToCore(false)
 {
@@ -79,7 +77,6 @@ void Client::init() {
           _networkModel, SLOT(bufferUpdated(BufferInfo)));
 
   _bufferModel = new BufferModel(_networkModel);
-  _nickModel = new NickModel(_networkModel);
 
   SignalProxy *p = signalProxy();
   p->attachSignal(this, SIGNAL(sendSessionData(const QString &, const QVariant &)),
@@ -106,13 +103,13 @@ void Client::init() {
   p->attachSignal(this, SIGNAL(requestRemoveIdentity(IdentityId)), SIGNAL(removeIdentity(IdentityId)));
   p->attachSlot(SIGNAL(identityCreated(const Identity &)), this, SLOT(coreIdentityCreated(const Identity &)));
   p->attachSlot(SIGNAL(identityRemoved(IdentityId)), this, SLOT(coreIdentityRemoved(IdentityId)));
-/*
+
   p->attachSignal(this, SIGNAL(requestCreateNetwork(const NetworkInfo &)), SIGNAL(createNetwork(const NetworkInfo &)));
   p->attachSignal(this, SIGNAL(requestUpdateNetwork(const NetworkInfo &)), SIGNAL(updateNetwork(const NetworkInfo &)));
   p->attachSignal(this, SIGNAL(requestRemoveNetwork(NetworkId)), SIGNAL(removeNetwork(NetworkId)));
-  p->attachSlot(SIGNAL(networkCreated(const NetworkInfo &)), this, SLOT(coreNetworkCreated(const NetworkInfo &)));
+  p->attachSlot(SIGNAL(networkCreated(NetworkId)), this, SLOT(coreNetworkCreated(NetworkId)));
   p->attachSlot(SIGNAL(networkRemoved(NetworkId)), this, SLOT(coreNetworkRemoved(NetworkId)));
-*/
+
   connect(p, SIGNAL(disconnected()), this, SLOT(disconnectFromCore()));
 
   //connect(mainUi, SIGNAL(connectToCore(const QVariantMap &)), this, SLOT(connectToCore(const QVariantMap &)));
@@ -179,11 +176,6 @@ BufferModel *Client::bufferModel() {
   return instance()->_bufferModel;
 }
 
-NickModel *Client::nickModel() {
-  return instance()->_nickModel;
-}
-
-
 SignalProxy *Client::signalProxy() {
   return instance()->_signalProxy;
 }
@@ -207,6 +199,72 @@ const Network * Client::network(NetworkId networkid) {
   else return 0;
 }
 
+/*
+void Client::networkConnected(uint netid) {
+  // TODO: create statusBuffer / switch to networkids
+  //BufferInfo id = statusBufferInfo(net);
+  //Buffer *b = buffer(id);
+  //b->setActive(true);
+
+  Network *netinfo = new Network(netid, this);
+  netinfo->setProxy(signalProxy());
+  networkModel()->attachNetwork(netinfo);
+  connect(netinfo, SIGNAL(destroyed()), this, SLOT(networkDestroyed()));
+  _networks[netid] = netinfo;
+}
+
+void Client::networkDisconnected(NetworkId networkid) {
+  if(!_networks.contains(networkid)) {
+    qWarning() << "Client::networkDisconnected(uint): unknown Network" << networkid;
+    return;
+}
+
+  Network *net = _networks.take(networkid);
+  if(!net->isInitialized()) {
+    qDebug() << "Network" << networkid << "disconnected while not yet initialized!";
+    updateCoreConnectionProgress();
+}
+  net->deleteLater();
+}
+*/
+
+void Client::createNetwork(const NetworkInfo &info) {
+  emit instance()->requestCreateNetwork(info);
+}
+
+void Client::updateNetwork(const NetworkInfo &info) {
+  emit instance()->requestUpdateNetwork(info);
+}
+
+void Client::removeNetwork(NetworkId id) {
+  emit instance()->requestRemoveNetwork(id);
+}
+
+void Client::addNetwork(Network *net) {
+  net->setProxy(signalProxy());
+  signalProxy()->synchronize(net);
+  networkModel()->attachNetwork(net);
+  connect(net, SIGNAL(destroyed()), instance(), SLOT(networkDestroyed()));
+  instance()->_networks[net->networkId()] = net;
+  emit instance()->networkCreated(net->networkId());
+}
+
+void Client::coreNetworkCreated(NetworkId id) {
+  if(_networks.contains(id)) {
+    qWarning() << "Creation of already existing network requested!";
+    return;
+  }
+  Network *net = new Network(id, this);
+  addNetwork(net);
+}
+
+void Client::coreNetworkRemoved(NetworkId id) {
+  if(!_networks.contains(id)) return;
+  Network *net = _networks.take(id);
+  emit networkRemoved(net->networkId());
+  net->deleteLater();
+}
+
 /*** Identity handling ***/
 
 QList<IdentityId> Client::identityIds() {
@@ -344,55 +402,6 @@ QStringList Client::sessionDataKeys() {
 
 /*** ***/
 
-// FIXME
-void Client::disconnectFromNetwork(NetworkId id) {
-  if(!instance()->_networks.contains(id)) return;
-  Network *net = instance()->_networks[id];
-  net->requestDisconnect();
-}
-
-/*
-void Client::networkConnected(uint netid) {
-  // TODO: create statusBuffer / switch to networkids
-  //BufferInfo id = statusBufferInfo(net);
-  //Buffer *b = buffer(id);
-  //b->setActive(true);
-
-  Network *netinfo = new Network(netid, this);
-  netinfo->setProxy(signalProxy());
-  networkModel()->attachNetwork(netinfo);
-  connect(netinfo, SIGNAL(destroyed()), this, SLOT(networkDestroyed()));
-  _networks[netid] = netinfo;
-}
-
-void Client::networkDisconnected(NetworkId networkid) {
-  if(!_networks.contains(networkid)) {
-    qWarning() << "Client::networkDisconnected(uint): unknown Network" << networkid;
-    return;
-  }
-
-  Network *net = _networks.take(networkid);
-  if(!net->isInitialized()) {
-    qDebug() << "Network" << networkid << "disconnected while not yet initialized!";
-    updateCoreConnectionProgress();
-  }
-  net->deleteLater();
-}
-*/
-
-void Client::addNetwork(Network *net) {
-  net->setProxy(signalProxy());
-  signalProxy()->synchronize(net);
-  networkModel()->attachNetwork(net);
-  connect(net, SIGNAL(destroyed()), instance(), SLOT(networkDestroyed()));
-  instance()->_networks[net->networkId()] = net;
-  emit instance()->networkCreated(net->networkId());
-}
-
-void Client::createNetwork(const NetworkInfo &info) {
-
-
-}
 
 /*** ***/