CoreNetwork::~CoreNetwork() {
if(connectionState() != Disconnected && connectionState() != Network::Reconnecting)
disconnectFromIrc(false); // clean up, but this does not count as requested disconnect!
+ else
+ socket.close();
disconnect(&socket, 0, this, 0); // this keeps the socket from triggering events during clean up
delete _ircServerHandler;
delete _userInputHandler;
}
// rejoin channels we've been in
- QStringList channels, keys;
- foreach(QString chan, persistentChannels()) {
- QString key = channelKey(chan);
- if(!key.isEmpty()) {
- channels.prepend(chan);
- keys.prepend(key);
- } else {
- channels.append(chan);
+ if(rejoinChannels()) {
+ QStringList channels, keys;
+ foreach(QString chan, coreSession()->persistentChannels(networkId()).keys()) {
+ QString key = channelKey(chan);
+ if(!key.isEmpty()) {
+ channels.prepend(chan);
+ keys.prepend(key);
+ } else {
+ channels.append(chan);
+ }
}
+ QString joinString = QString("%1 %2").arg(channels.join(",")).arg(keys.join(",")).trimmed();
+ if(!joinString.isEmpty())
+ userInputHandler()->handleJoin(statusBuf, joinString);
}
- QString joinString = QString("%1 %2").arg(channels.join(",")).arg(keys.join(",")).trimmed();
- if(!joinString.isEmpty())
- userInputHandler()->handleJoin(statusBuf, joinString);
}
void CoreNetwork::setUseAutoReconnect(bool use) {