X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fnetworkinfo.cpp;h=74cb8b9a0abcea0cada826d557a201fcc35c098b;hp=0ef2f1f69749bb56965ef64bbc8462bdca18b570;hb=836534302ea576791dc5cc01918dd4c5abd61878;hpb=99445d2c7ce2f5336798098963f4954eaafebdde diff --git a/src/common/networkinfo.cpp b/src/common/networkinfo.cpp index 0ef2f1f6..74cb8b9a 100644 --- a/src/common/networkinfo.cpp +++ b/src/common/networkinfo.cpp @@ -183,12 +183,20 @@ IrcUser *NetworkInfo::newIrcUser(const QString &hostmask) { return _ircUsers[nick]; } +void NetworkInfo::removeIrcUser(IrcUser *ircuser) { + QString nick = _ircUsers.key(ircuser); + if(nick.isNull()) + return; + + _ircUsers.remove(nick); + ircuser->deleteLater(); + emit ircUserRemoved(nick); +} + void NetworkInfo::removeIrcUser(QString nick) { IrcUser *ircuser; - if((ircuser = ircUser(nick)) != 0) { - ircuser->deleteLater(); - emit ircUserRemoved(nick); - } + if((ircuser = ircUser(nick)) != 0) + removeIrcUser(ircuser); } IrcUser *NetworkInfo::ircUser(const QString &nickname) const { @@ -339,9 +347,7 @@ void NetworkInfo::ircUserNickChanged(QString newnick) { void NetworkInfo::ircUserDestroyed() { IrcUser *ircuser = static_cast(sender()); Q_ASSERT(ircuser); - QString nick = _ircUsers.key(ircuser); - _ircUsers.remove(nick); - emit ircUserRemoved(nick); + removeIrcUser(ircuser); } void NetworkInfo::channelDestroyed() {