-// FIXME switch to NetworkIDs
-void CoreSession::connectToNetwork(QString network) {
- uint networkid = getNetworkId(network);
- if(!servers.contains(networkid)) {
- Server *server = new Server(userId(), networkid, network);
- servers[networkid] = server;
- attachServer(server);
- server->start();
- }
- emit connectToIrc(network);
-}
-
-void CoreSession::attachServer(Server *server) {
- connect(this, SIGNAL(connectToIrc(QString)), server, SLOT(connectToIrc(QString)));
- connect(this, SIGNAL(disconnectFromIrc(QString)), server, SLOT(disconnectFromIrc(QString)));
- connect(this, SIGNAL(msgFromGui(uint, QString, QString)), server, SLOT(userInput(uint, QString, QString)));
-
- connect(server, SIGNAL(connected(uint)), this, SLOT(serverConnected(uint)));
- connect(server, SIGNAL(disconnected(uint)), this, SLOT(serverDisconnected(uint)));
- connect(server, SIGNAL(displayMsg(Message::Type, QString, QString, QString, quint8)), this, SLOT(recvMessageFromServer(Message::Type, QString, QString, QString, quint8)));
- connect(server, SIGNAL(displayStatusMsg(QString)), this, SLOT(recvStatusMsgFromServer(QString)));
-
- // connect serversignals to proxy
- signalProxy()->attachSignal(server, SIGNAL(serverState(QString, QVariantMap)), SIGNAL(networkState(QString, QVariantMap)));
- signalProxy()->attachSignal(server, SIGNAL(connected(uint)), SIGNAL(networkConnected(uint)));
- signalProxy()->attachSignal(server, SIGNAL(disconnected(uint)), SIGNAL(networkDisconnected(uint)));
+void CoreSession::updateBufferInfo(UserId uid, const BufferInfo &bufinfo) {
+ if(uid == user()) emit bufferInfoUpdated(bufinfo);
+}
+
+// FIXME remove
+void CoreSession::connectToNetwork(QString netname, const QVariant &previousState) {
+ Network *net = 0;
+ foreach(Network *n, _networks.values()) {
+ if(n->networkName() == netname) {
+ net = n; break;
+ }
+ }
+ if(!net) {
+ qWarning() << "Connect to unknown network requested, ignoring!";
+ return;
+ }
+ connectToNetwork(net->networkId(), previousState);
+}
+
+void CoreSession::connectToNetwork(NetworkId id, const QVariant &previousState) {
+ Network *net = network(id);
+ if(!net) {
+ qWarning() << "Connect to unknown network requested! net:" << id << "user:" << user();
+ return;
+ }
+
+ NetworkConnection *conn = networkConnection(id);
+ if(!conn) {
+ conn = new NetworkConnection(net, this, previousState);
+ _connections[id] = conn;
+ attachNetworkConnection(conn);
+ conn->connectToIrc();
+ }
+}
+
+void CoreSession::attachNetworkConnection(NetworkConnection *conn) {
+ //connect(this, SIGNAL(connectToIrc(QString)), network, SLOT(connectToIrc(QString)));
+ //connect(this, SIGNAL(disconnectFromIrc(QString)), network, SLOT(disconnectFromIrc(QString)));
+ //connect(this, SIGNAL(msgFromGui(uint, QString, QString)), network, SLOT(userInput(uint, QString, QString)));
+
+ connect(conn, SIGNAL(connected(NetworkId)), this, SLOT(networkConnected(NetworkId)));
+ connect(conn, SIGNAL(disconnected(NetworkId)), this, SLOT(networkDisconnected(NetworkId)));
+ signalProxy()->attachSignal(conn, SIGNAL(connected(NetworkId)), SIGNAL(networkConnected(NetworkId)));
+ signalProxy()->attachSignal(conn, SIGNAL(disconnected(NetworkId)), SIGNAL(networkDisconnected(NetworkId)));
+
+ connect(conn, SIGNAL(displayMsg(Message::Type, QString, QString, QString, quint8)), this, SLOT(recvMessageFromServer(Message::Type, QString, QString, QString, quint8)));
+ connect(conn, SIGNAL(displayStatusMsg(QString)), this, SLOT(recvStatusMsgFromServer(QString)));
+