QTfrontend/model/playerslistmodel.cpp
changeset 9725 68b5d87cfdb0
parent 9503 8f9b04138456
child 9727 e89ed65f62da
equal deleted inserted replaced
9724:b3fefde4cff7 9725:68b5d87cfdb0
   144 }
   144 }
   145 
   145 
   146 
   146 
   147 void PlayersListModel::setFlag(const QString &nickname, StateFlag flagType, bool isSet)
   147 void PlayersListModel::setFlag(const QString &nickname, StateFlag flagType, bool isSet)
   148 {
   148 {
       
   149     if(flagType == Friend)
       
   150     {
       
   151         if(isSet)
       
   152             m_friendsSet.insert(nickname.toLower());
       
   153         else
       
   154             m_friendsSet.remove(nickname.toLower());
       
   155 
       
   156         saveSet(m_friendsSet, "friends");
       
   157     }
       
   158     else if(flagType == Ignore)
       
   159     {
       
   160         if(isSet)
       
   161             m_ignoredSet.insert(nickname.toLower());
       
   162         else
       
   163             m_ignoredSet.remove(nickname.toLower());
       
   164 
       
   165         saveSet(m_ignoredSet, "ignore");
       
   166     }
       
   167 
   149     QModelIndexList mil = match(index(0), Qt::DisplayRole, nickname, 1, Qt::MatchExactly);
   168     QModelIndexList mil = match(index(0), Qt::DisplayRole, nickname, 1, Qt::MatchExactly);
   150 
   169 
   151     if(mil.size())
   170     if(mil.size())
   152     {
   171     {
   153         setData(mil[0], isSet, flagType);
   172         setData(mil[0], isSet, flagType);
   154 
   173 
   155         if(flagType == Friend || flagType == ServerAdmin
   174         if(flagType == Friend || flagType == ServerAdmin
   156                 || flagType == Ignore || flagType == RoomAdmin)
   175                 || flagType == Ignore || flagType == RoomAdmin)
   157             updateSortData(mil[0]);
   176             updateSortData(mil[0]);
   158 
   177 
   159         if(flagType == Friend)
       
   160         {
       
   161             if(isSet)
       
   162                 m_friendsSet.insert(nickname.toLower());
       
   163             else
       
   164                 m_friendsSet.remove(nickname.toLower());
       
   165 
       
   166             saveSet(m_friendsSet, "friends");
       
   167         }
       
   168 
       
   169         if(flagType == Ignore)
       
   170         {
       
   171             if(isSet)
       
   172                 m_ignoredSet.insert(nickname.toLower());
       
   173             else
       
   174                 m_ignoredSet.remove(nickname.toLower());
       
   175 
       
   176             saveSet(m_ignoredSet, "ignore");
       
   177         }
       
   178 
       
   179         updateIcon(mil[0]);
   178         updateIcon(mil[0]);
   180     }
   179     }
   181 }
   180 }
   182 
   181 
   183 
   182 
   185 {
   184 {
   186     QModelIndexList mil = match(index(0), Qt::DisplayRole, nickname, 1, Qt::MatchExactly);
   185     QModelIndexList mil = match(index(0), Qt::DisplayRole, nickname, 1, Qt::MatchExactly);
   187 
   186 
   188     if(mil.size())
   187     if(mil.size())
   189         return mil[0].data(flagType).toBool();
   188         return mil[0].data(flagType).toBool();
       
   189     else if(flagType == Friend)
       
   190         return isFriend(nickname);
       
   191     else if(flagType == Ignore)
       
   192         return isIgnored(nickname);
   190     else
   193     else
   191         return false;
   194         return false;
   192 }
   195 }
   193 
   196 
   194 void PlayersListModel::resetRoomFlags()
   197 void PlayersListModel::resetRoomFlags()
   342 
   345 
   343     for(int i = rowCount() - 1; i >= 0; --i)
   346     for(int i = rowCount() - 1; i >= 0; --i)
   344         checkFriendIgnore(index(i));
   347         checkFriendIgnore(index(i));
   345 }
   348 }
   346 
   349 
       
   350 bool PlayersListModel::isFriend(const QString & nickname)
       
   351 {
       
   352     return m_friendsSet.contains(nickname.toLower());
       
   353 }
       
   354 
       
   355 bool PlayersListModel::isIgnored(const QString & nickname)
       
   356 {
       
   357     return m_ignoredSet.contains(nickname.toLower());
       
   358 }
   347 
   359 
   348 void PlayersListModel::checkFriendIgnore(const QModelIndex &mi)
   360 void PlayersListModel::checkFriendIgnore(const QModelIndex &mi)
   349 {
   361 {
   350     setData(mi, m_friendsSet.contains(mi.data().toString().toLower()), Friend);
   362     setData(mi, isFriend(mi.data().toString()), Friend);
   351     setData(mi, m_ignoredSet.contains(mi.data().toString().toLower()), Ignore);
   363     setData(mi, isIgnored(mi.data().toString()), Ignore);
   352 
   364 
   353     updateIcon(mi);
   365     updateIcon(mi);
   354     updateSortData(mi);
   366     updateSortData(mi);
   355 }
   367 }
   356 
   368