+void Core::connectToIrc(QStringList networks) {
+ foreach(QString net, networks) {
+ if(servers.contains(net)) {
+
+ } else {
+ Server *server = new Server(net);
+ connect(this, SIGNAL(connectToIrc(QString)), server, SLOT(connectToIrc(QString)));
+ connect(this, SIGNAL(disconnectFromIrc(QString)), server, SLOT(disconnectFromIrc(QString)));
+ connect(this, SIGNAL(msgFromGUI(QString, QString, QString)), server, SLOT(userInput(QString, QString, QString)));
+ connect(server, SIGNAL(sendMessage(QString, QString)), this, SLOT(recvMessageFromServer(QString, QString)));
+ connect(server, SIGNAL(sendStatusMsg(QString)), this, SLOT(recvStatusMsgFromServer(QString)));
+ // add error handling
+
+ server->start();
+ servers[net] = server;
+ }
+ emit connectToIrc(net);
+ }
+}
+
+void Core::recvMessageFromServer(QString buf, QString msg) {
+ Q_ASSERT(sender());
+ QString net = qobject_cast<Server*>(sender())->getNetwork();
+ emit sendMessage(net, buf, msg);
+}
+
+void Core::recvStatusMsgFromServer(QString msg) {
+ Q_ASSERT(sender());
+ QString net = qobject_cast<Server*>(sender())->getNetwork();
+ qDebug() << "sent status:"<<msg;
+ emit sendStatusMsg(net, msg);