QTfrontend/net/newnetclient.cpp
changeset 7683 993337e5021f
parent 7545 063601290761
child 7684 db140521d102
equal deleted inserted replaced
7682:f6bfbe829008 7683:993337e5021f
   355             return;
   355             return;
   356         }
   356         }
   357 
   357 
   358         QString flags = lst[1];
   358         QString flags = lst[1];
   359         bool setFlag = flags[0] == '+';
   359         bool setFlag = flags[0] == '+';
       
   360         const QStringList nicks = lst.mid(2);
   360 
   361 
   361         while(flags.size() > 1)
   362         while(flags.size() > 1)
   362         {
   363         {
   363             flags.remove(0, 1);
   364             flags.remove(0, 1);
   364             char c = flags[0].toAscii();
   365             char c = flags[0].toAscii();
   365 
   366 
   366             switch(c)
   367             switch(c)
   367             {
   368             {
   368                 case 'r':
   369                 case 'r':
   369                 {
   370                         foreach (const QString & nick, nicks)
   370                     for(int i = 2; i < lst.size(); ++i)
       
   371                     {
       
   372                         if (lst[i] == mynick)
       
   373                         {
   371                         {
   374                             if (isChief && !setFlag) ToggleReady();
   372                             if (nick == mynick)
   375                             else emit setMyReadyStatus(setFlag);
   373                             {
       
   374                                 if (isChief && !setFlag) ToggleReady();
       
   375                                 else emit setMyReadyStatus(setFlag);
       
   376                             }
       
   377                             emit setReadyStatus(nick, setFlag);
   376                         }
   378                         }
   377 
   379                         break;
   378                         emit setReadyStatus(lst[i], setFlag);
   380 
   379                     }
   381                 case 'a':
   380                 }
   382                         foreach (const QString & nick, nicks)
       
   383                         {
       
   384                             if (nick == mynick)
       
   385                                 emit adminAccess(setFlag);
       
   386 
       
   387                             emit setAdminStatus(nick, setFlag);
       
   388                         }
       
   389                         break;
       
   390 
       
   391                 default:
       
   392                         qWarning() << "Net: Unknown client-flag: " << c;
   381             }
   393             }
   382         }
   394         }
   383 
   395 
   384         return;
   396         return;
   385     }
   397     }
   501         return;
   513         return;
   502     }
   514     }
   503 
   515 
   504     if (lst[0] == "ADMIN_ACCESS")
   516     if (lst[0] == "ADMIN_ACCESS")
   505     {
   517     {
   506         emit adminAccess(true);
   518         // obsolete, see +a client flag
   507         return;
   519         return;
   508     }
   520     }
   509 
   521 
   510     if(netClientState == InLobby && lst[0] == "JOINED")
   522     if(netClientState == InLobby && lst[0] == "JOINED")
   511     {
   523     {