projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
This _should_ fix the bug, that users quitting the network won't be
[quassel.git]
/
src
/
common
/
networkinfo.cpp
diff --git
a/src/common/networkinfo.cpp
b/src/common/networkinfo.cpp
index
5690a26
..
0ef2f1f
100644
(file)
--- a/
src/common/networkinfo.cpp
+++ b/
src/common/networkinfo.cpp
@@
-183,6
+183,14
@@
IrcUser *NetworkInfo::newIrcUser(const QString &hostmask) {
return _ircUsers[nick];
}
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];
IrcUser *NetworkInfo::ircUser(const QString &nickname) const {
if(_ircUsers.contains(nickname))
return _ircUsers[nickname];
@@
-331,7
+339,9
@@
void NetworkInfo::ircUserNickChanged(QString newnick) {
void NetworkInfo::ircUserDestroyed() {
IrcUser *ircuser = static_cast<IrcUser *>(sender());
Q_ASSERT(ircuser);
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 NetworkInfo::channelDestroyed() {