From kde-commits Thu Jul 01 13:27:50 2010 From: Gary Cramblitt Date: Thu, 01 Jul 2010 13:27:50 +0000 To: kde-commits Subject: [Konversation] 102fc0c: Nick renaming fixes. Message-Id: <20100701132750.B0265BB56F6 () projects ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=127800930805669 commit 102fc0c52bedc2e54bd2a83301fca94155d9bc24 Author: Gary Cramblitt Date: Fri Aug 13 03:30:42 2004 +0000 Nick renaming fixes. svn path=/trunk/kdeextragear-2/konversation/; revision=337679 diff --git a/konversation/channel.cpp b/konversation/channel.cpp index 2237a8d..1e00a89 100644 --- a/konversation/channel.cpp +++ b/konversation/channel.cpp @@ -935,8 +935,9 @@ void Channel::nickRenamed(const QString &oldNick, const NickInfo& nickInfo) { Q_ASSERT(!oldNick.isEmpty()); /* Did we change our nick name? */ QString newNick = nickInfo.getNickname(); - if(newNick==server->getNickname()) + if(oldNick==server->getNickname()) { + setNickname(newNick); appendCommandMessage(i18n("Nick"),i18n("You are now known as %1.").arg(newNick),false); } /* No, must've been someone else */ @@ -1140,10 +1141,11 @@ void Channel::kickNick(const QString &nickname, const QString &kicker, const QSt #endif //USE_NICKINFO Nick* Channel::getNickByName(const QString &lookname) { + QString lcLookname = lookname.lower(); Nick* nick=nicknameList.first(); while(nick) { - if(nick->getNickname().lower()==lookname.lower()) return nick; + if(nick->getNickname().lower()==lcLookname) return nick; nick=nicknameList.next(); } return 0; diff --git a/konversation/server.cpp b/konversation/server.cpp index 96e31a3..f4e60fa 100644 --- a/konversation/server.cpp +++ b/konversation/server.cpp @@ -2139,11 +2139,14 @@ void Server::renameNickInfo(NickInfoPtr nickInfo, const QString& newname) { if (nickInfo) { - // Rename nickname in the NickInfo object. + // Get existing lowercase nickname and rename nickname in the NickInfo object. + LocaleString lcNickname = nickInfo->getNickname().lower(); nickInfo->setNickname(newname); - // Rename key in the joined and unjoined lists. - LocaleString lcNickname = nickname.lower(); LocaleString lcNewname = newname.lower(); + // Rename the key in allNicks list. + allNicks.remove(lcNickname); + allNicks.insert(lcNewname, nickInfo); + // Rename key in the joined and unjoined lists. QStringList nickChannels = getNickChannels(lcNickname); for (unsigned int index=0;indexgetNickByName(nickname)) channel->nickRenamed(newNick, *nickInfo); + // All we do is notify that the nick has been renamed.. we haven't actually renamed it yet + // Note that NickPanel has already updated, so pass new nick to getNickByName. + if(channel->getNickByName(newNick)) channel->nickRenamed(nickname, *nickInfo); #else if(channel->getNickByName(nickname)) channel->renameNick(nickname,newNick); #endif