[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [Konversation] 102fc0c: Nick renaming fixes.
From:       Gary Cramblitt <garycramblitt () comcast ! net>
Date:       2010-07-01 13:27:50
Message-ID: 20100701132750.B0265BB56F6 () projects ! kde ! org
[Download RAW message or body]

commit 102fc0c52bedc2e54bd2a83301fca94155d9bc24
Author: Gary Cramblitt <garycramblitt@comcast.net>
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;index<nickChannels.count();index++)
     {
@@ -2367,9 +2370,9 @@ void Server::renameNick(const QString &nickname, const QString &newNick)
   while(channel)
   {
 #ifdef USE_NICKINFO
-//All we do is notify that the nick has been renamed.. we haven't actually renamed it yet
-
-    if(channel->getNickByName(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
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic