QString nick(nickFromMask(hostmask));
if(!_ircUsers.contains(nick)) {
IrcUser *ircuser = new IrcUser(hostmask, this);
+ qDebug() << "new IrcUser()" << ircuser << hostmask;
// mark IrcUser as already initialized to keep the SignalProxy from requesting initData
if(initialized())
ircuser->setInitialized();
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 {
QString nick(nickFromMask(mask));
IrcUser *ircuser;
+ qDebug() << "NetworkInfo::updateNickFromMask()" << mask;
if(_ircUsers.contains(nick)) {
+ qDebug() << " is known User";
ircuser = _ircUsers[nick];
ircuser->updateHostmask(mask);
} else {
+ qDebug() << " is new User";
ircuser = newIrcUser(mask);
}
return ircuser;
void NetworkInfo::ircUserDestroyed() {
IrcUser *ircuser = static_cast<IrcUser *>(sender());
Q_ASSERT(ircuser);
- QString nick = _ircUsers.key(ircuser);
- _ircUsers.remove(nick);
- emit ircUserRemoved(nick);
+ qDebug() << "NetworkInfo::ircUserDestroyed()" << ircuser;
+ removeIrcUser(ircuser);
}
void NetworkInfo::channelDestroyed() {