QTfrontend/net/newnetclient.cpp
changeset 7683 993337e5021f
parent 7545 063601290761
child 7684 db140521d102
--- a/QTfrontend/net/newnetclient.cpp	Sun Sep 09 19:57:13 2012 +0400
+++ b/QTfrontend/net/newnetclient.cpp	Sun Sep 09 20:11:07 2012 +0200
@@ -357,6 +357,7 @@
 
         QString flags = lst[1];
         bool setFlag = flags[0] == '+';
+        const QStringList nicks = lst.mid(2);
 
         while(flags.size() > 1)
         {
@@ -366,18 +367,29 @@
             switch(c)
             {
                 case 'r':
-                {
-                    for(int i = 2; i < lst.size(); ++i)
-                    {
-                        if (lst[i] == mynick)
+                        foreach (const QString & nick, nicks)
                         {
-                            if (isChief && !setFlag) ToggleReady();
-                            else emit setMyReadyStatus(setFlag);
+                            if (nick == mynick)
+                            {
+                                if (isChief && !setFlag) ToggleReady();
+                                else emit setMyReadyStatus(setFlag);
+                            }
+                            emit setReadyStatus(nick, setFlag);
                         }
+                        break;
 
-                        emit setReadyStatus(lst[i], setFlag);
-                    }
-                }
+                case 'a':
+                        foreach (const QString & nick, nicks)
+                        {
+                            if (nick == mynick)
+                                emit adminAccess(setFlag);
+
+                            emit setAdminStatus(nick, setFlag);
+                        }
+                        break;
+
+                default:
+                        qWarning() << "Net: Unknown client-flag: " << c;
             }
         }
 
@@ -503,7 +515,7 @@
 
     if (lst[0] == "ADMIN_ACCESS")
     {
-        emit adminAccess(true);
+        // obsolete, see +a client flag
         return;
     }