projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
when renaming a buffer to a matching known irc user, the on/offline state is now...
[quassel.git]
/
src
/
core
/
ircserverhandler.cpp
diff --git
a/src/core/ircserverhandler.cpp
b/src/core/ircserverhandler.cpp
index
4d706d6
..
8a093f6
100644
(file)
--- a/
src/core/ircserverhandler.cpp
+++ b/
src/core/ircserverhandler.cpp
@@
-306,11
+306,15
@@
void IrcServerHandler::handleNick(const QString &prefix, const QList<QByteArray>
? newnick
: prefix;
? newnick
: prefix;
+
+ // the order is cruicial
+ // otherwise the client would rename the buffer, see that the assigned ircuser doesn't match anymore
+ // and remove the ircuser from the querybuffer leading to a wrong on/offline state
+ ircuser->setNick(newnick);
coreSession()->renameBuffer(network()->networkId(), newnick, oldnick);
coreSession()->renameBuffer(network()->networkId(), newnick, oldnick);
+
foreach(QString channel, ircuser->channels())
emit displayMsg(Message::Nick, BufferInfo::ChannelBuffer, channel, newnick, sender);
foreach(QString channel, ircuser->channels())
emit displayMsg(Message::Nick, BufferInfo::ChannelBuffer, channel, newnick, sender);
-
- ircuser->setNick(newnick);
}
void IrcServerHandler::handleNotice(const QString &prefix, const QList<QByteArray> ¶ms) {
}
void IrcServerHandler::handleNotice(const QString &prefix, const QList<QByteArray> ¶ms) {