isknown = false;
}
- if(!_userModes.contains(ircuser) && ircuser) {
+ if(!_userModes.contains(ircuser)) {
qWarning() << "Channel" << name() << "received data for unknown User" << ircuser->nick();
isknown = false;
}
void IrcChannel::ircUserDestroyed() {
IrcUser *ircUser = static_cast<IrcUser *>(sender());
Q_ASSERT(ircUser);
- emit ircUserParted(ircUser);
- emit ircUserDestroyed(ircUser);
_userModes.remove(ircUser);
+ emit ircUserParted(ircUser);
}
void IrcChannel::ircUserNickSet(QString nick) {
void ircUserJoined(IrcUser *ircuser);
void ircUserParted(IrcUser *ircuser);
- void ircUserDestroyed(IrcUser *ircuser);
void ircUserNickSet(IrcUser *ircuser, QString nick);
void ircUserModeAdded(IrcUser *ircuser, QString mode);
void ircUserModeRemoved(IrcUser *ircuser, QString mode);
return _ircUsers[nick];
}
+void NetworkInfo::removeIrcUser(QString nick) {
+ IrcUser *ircuser;
+ if((ircuser = ircUser(nick)) != 0) {
+ ircuser->deleteLater();
+ emit ircUserRemoved(nick);
+ }
+}
+
IrcUser *NetworkInfo::ircUser(const QString &nickname) const {
if(_ircUsers.contains(nickname))
return _ircUsers[nickname];
void NetworkInfo::ircUserDestroyed() {
IrcUser *ircuser = static_cast<IrcUser *>(sender());
Q_ASSERT(ircuser);
- _ircUsers.remove(_ircUsers.key(ircuser));
+ QString nick = _ircUsers.key(ircuser);
+ _ircUsers.remove(nick);
+ emit ircUserRemoved(nick);
}
void NetworkInfo::channelDestroyed() {
void removeSupport(const QString ¶m);
inline void addIrcUser(const QString &hostmask) { newIrcUser(hostmask); }
+ void removeIrcUser(QString nick);
//init geters
QVariantMap initSupports() const;
void ircUserAdded(QString hostmask);
void ircChannelAdded(QString channelname);
+ void ircUserRemoved(QString nick);
+
void initDone();
void ircUserInitDone();
void ircChannelInitDone();