- Q_ASSERT(networkInfo->ircChannel(channel));
- networkInfo->ircChannel(channel)->part(this);
-
- emit channelParted(channel);
+void IrcUser::partChannel(const QString &channelname) {
+ IrcChannel *channel = networkInfo->ircChannel(channelname);
+ if(channel == 0) {
+ qWarning() << "IrcUser::partChannel(): received part for unknown Channel" << channelname;
+ } else {
+ partChannel(channel);
+ }
+}
+
+void IrcUser::channelDestroyed() {
+ // private slot!
+ IrcChannel *channel = static_cast<IrcChannel*>(sender());
+ Q_ASSERT(channel);
+ if(_channels.contains(channel)) {
+ _channels.remove(channel);
+ disconnect(channel, 0, this, 0);