diff --git a/src/ircnetworkclient.cpp b/src/ircnetworkclient.cpp index 5710c12..bfc464e 100644 --- a/src/ircnetworkclient.cpp +++ b/src/ircnetworkclient.cpp @@ -125,7 +125,6 @@ void IRCNetworkClient::start() address.SetPassword(m_config->password); address.SetIdent(m_config->ident); address.SetRealname(m_config->realName); - address.SetSuffix(m_config->channels.join(',')); m_network = QSharedPointer (new libircclient::Network(address, m_config->networkName)); m_network->SetDefaultIdentifyString(m_config->identifyFormat); @@ -147,9 +146,7 @@ void IRCNetworkClient::start() LOG_DEBUG << "Connected to server socket"; }); - connect(m_network.data(), &libircclient::Network::Event_Welcome, this, [&](){ - LOG_INFO << "Connected to server"; - }); + connect(m_network.data(), &libircclient::Network::Event_Welcome, this, &IRCNetworkClient::Slot_onWelcome); connect(m_network.data(), &libircclient::Network::Event_Disconnected, this, &IRCNetworkClient::Slot_onDisconnected); connect(m_network.data(), &libircclient::Network::Event_Join, this, &IRCNetworkClient::Slot_onJoin); @@ -315,6 +312,15 @@ void IRCNetworkClient::Slot_onMode(libircclient::Parser *p) giveTheVoiceFlag(m_voicedList.nicks(), params.at(0)); } +void IRCNetworkClient::Slot_onWelcome() +{ + LOG_INFO << "Connected to server"; + foreach(const auto& channel, m_config->channels) + { + m_network->RequestJoin(channel); + } +} + void IRCNetworkClient::Slot_onDisconnected() { LOG_INFO << "Disconnected from server. Auto reconnect" << (m_config->autoReconnect ? "enabled" : "disabled"); diff --git a/src/ircnetworkclient.h b/src/ircnetworkclient.h index c787bf5..f97bb18 100644 --- a/src/ircnetworkclient.h +++ b/src/ircnetworkclient.h @@ -58,6 +58,7 @@ private slots: void Slot_onChannelMessage(QString channel, QString sender, QString text); void Slot_onJoin(libircclient::Parser*, libircclient::User* u, libircclient::Channel* c); void Slot_onMode(libircclient::Parser* p); + void Slot_onWelcome(); void Slot_onDisconnected(); void stopPrivate();