summaryrefslogtreecommitdiffstats
path: root/src/crsm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/crsm.cpp')
-rw-r--r--src/crsm.cpp31
1 files changed, 12 insertions, 19 deletions
diff --git a/src/crsm.cpp b/src/crsm.cpp
index c1fa131..ec1bf46 100644
--- a/src/crsm.cpp
+++ b/src/crsm.cpp
@@ -507,16 +507,20 @@ void CRSM::ircMessageReceived(IrcMessage *message)
}
}
-void CRSM::ircDisconnected()
+void CRSM::ircConnected()
{
- if(connection != nullptr)
+ IrcConnection* conn = (IrcConnection*)sender();
+ Q_ASSERT(conn == connection);
+ connection->sendCommand(IrcCommand::createMode(Config.IRC.Nick, "+B"));
+ connection->sendCommand(IrcCommand::createJoin(Config.IRC.Channel));
+ if(Config.IRC.UseIngameChat && !Config.IRC.IngameChannel.isEmpty())
{
- delete connection;
+ connection->sendCommand(IrcCommand::createJoin(Config.IRC.IngameChannel));
+ ircSetIngameChannelTopic();
}
- connection = nullptr;
- if(!finish && Config.IRC.Use)
+ else
{
- QTimer::singleShot(Config.IRC.ReconnectDelay * 1000, this, SLOT(reconnectIrc()));
+ Session.IRC.UseIngameChat = Config.IRC.UseIngameChat = false;
}
}
@@ -1557,21 +1561,10 @@ void CRSM::prepareAndConnectIrc()
connection->setNickName(Config.IRC.Nick);
connection->setRealName(Config.IRC.RealName);
connection->setReconnectDelay(Config.IRC.ReconnectDelay);
- connection->sendCommand(IrcCommand::createMode(Config.IRC.Nick, "+B"));
- connection->sendCommand(IrcCommand::createJoin(Config.IRC.Channel));
- if(Config.IRC.UseIngameChat && !Config.IRC.IngameChannel.isEmpty())
- {
- connection->sendCommand(IrcCommand::createJoin(Config.IRC.IngameChannel));
- ircSetIngameChannelTopic();
- }
- else
- {
- Session.IRC.UseIngameChat = Config.IRC.UseIngameChat = false;
- }
-
connection->setPassword(Config.IRC.Password);
+
connect(connection, SIGNAL(messageReceived(IrcMessage*)), this, SLOT(ircMessageReceived(IrcMessage*)));
- connect(connection, SIGNAL(disconnected()), this, SLOT(ircDisconnected()));
+ connect(connection, SIGNAL(connected()), this, SLOT(ircConnected()));
connection->open();
}