void Container::newStatusWindow(const QString &server, const int port) { // Create the new status window StatusWindow *statusWindow = new StatusWindow(mdiArea, parser); statusWindow->setWindowTitle(tr("Not Connected")); // Create the new IRCClient IRCClient *client = new IRCClient(this); statusWindow->setClient(client); // Add an entry in the window tree this->windowTree->addStatusWindow(client->cid, server, statusWindow); QHash<QString, MdiWindow *> windowHash; windowHash.insert(statusWindow->hashName(), statusWindow); this->windows.insert(client->cid, windowHash); if ((!server.isEmpty()) && (port > 0)) { // TODO: Connect to the server statusWindow->append(Config::Theme("INFO"),"--- Connecting to " + server + " (" + QString::number(port) + ")"); client->connectToHost(server, port); } // Connect the IRCClient signals to the Container slots connect(client, SIGNAL(connected(IRCClient *)), this, SLOT(connected(IRCClient *))); connect(client, SIGNAL(disconnected(IRCClient *)), this, SLOT(disconnected(IRCClient *))); //connect(client, SIGNAL(ircError(IRCClient *, QAbstractSocket::SocketError)), this, SLOT(ircError(IRCClient *, QAbstractSocket::SocketError))); connect(client, SIGNAL(privateMessageReceived(IRCClient *, const QString &, const QString &, const QString &)), this, SLOT(privateMessageReceived(IRCClient *, const QString &, const QString &, const QString &))); connect(client, SIGNAL(channelMessageReceived(IRCClient *, const QString &, const QString &, const QString &, const QString &, const QString &)), this, SLOT(channelMessageReceived(IRCClient *, const QString &, const QString &, const QString &, const QString &, const QString &))); connect(client, SIGNAL(incomingData(IRCClient *, const QString &)), this, SLOT(incomingData(IRCClient *, const QString &))); connect(client, SIGNAL(channelJoined(IRCClient *, const QString &, const QString &)), this, SLOT(channelJoined(IRCClient *, const QString &, const QString &))); connect(client, SIGNAL(channelParted(IRCClient *, const QString &, const QString &)), this, SLOT(channelParted(IRCClient *, const QString &, const QString &))); connect(client, SIGNAL(channelJoinCompleteNickList(IRCClient *, const QString &, const QStringList &)), this, SLOT(channelJoinCompleteNickList(IRCClient *, const QString &, const QStringList &))); // connect the new status button to new status window connect(statusWindow, SIGNAL(newStatusWin()), this, SLOT(newStatusWindow())); connect(statusWindow, SIGNAL(closeEventTriggered(const int, const QString &)), this, SLOT(subWindowClosed(const int, const QString &))); statusWindow->show(); }