-void Network::ircUserDestroyed() {
- IrcUser *ircuser = static_cast<IrcUser *>(sender());
- Q_ASSERT(ircuser);
- removeIrcUser(ircuser);
+void Network::removeIrcChannel(IrcChannel *channel) {
+ QString chanName = _ircChannels.key(channel);
+ if(chanName.isNull())
+ return;
+
+ _ircChannels.remove(chanName);
+ disconnect(channel, 0, this, 0);
+ emit ircChannelRemoved(chanName);
+ emit ircChannelRemoved(channel);
+ channel->deleteLater();
+}
+
+void Network::removeIrcChannel(const QString &channel) {
+ IrcChannel *chan;
+ if((chan = ircChannel(channel)) != 0)
+ removeIrcChannel(chan);