autojoin after reconnect to server

ver3
acetone 2023-05-02 18:09:59 +03:00
parent 5d51187f3f
commit c7bbaca1a7
2 changed files with 11 additions and 4 deletions

View File

@ -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<libircclient::Network> (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");

View File

@ -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();