103 if(msg.isEmpty()) |
112 if(msg.isEmpty()) |
104 emit nickRemovedLobby(nickname); |
113 emit nickRemovedLobby(nickname); |
105 else |
114 else |
106 emit nickRemovedLobby(nickname, msg); |
115 emit nickRemovedLobby(nickname, msg); |
107 |
116 |
108 QModelIndexList mil = match(index(0), Qt::DisplayRole, nickname, 1, Qt::MatchExactly); |
117 QModelIndex mi = nicknameIndex(nickname); |
109 |
118 |
110 if(mil.size()) |
119 if(mi.isValid()) |
111 removeRow(mil[0].row()); |
120 removeRow(mi.row()); |
112 } |
121 } |
113 |
122 |
114 |
123 |
115 void PlayersListModel::playerJoinedRoom(const QString & nickname, bool notify) |
124 void PlayersListModel::playerJoinedRoom(const QString & nickname, bool notify) |
116 { |
125 { |
117 QModelIndexList mil = match(index(0), Qt::DisplayRole, nickname, 1, Qt::MatchExactly); |
126 QModelIndex mi = nicknameIndex(nickname); |
118 |
127 |
119 if(mil.size()) |
128 if(mi.isValid()) |
120 { |
129 { |
121 setData(mil[0], true, RoomFilterRole); |
130 setData(mi, true, RoomFilterRole); |
122 updateIcon(mil[0]); |
131 updateIcon(mi); |
123 updateSortData(mil[0]); |
132 updateSortData(mi); |
124 } |
133 } |
125 |
134 |
126 emit nickAdded(nickname, notify); |
135 emit nickAdded(nickname, notify); |
127 } |
136 } |
128 |
137 |
129 |
138 |
130 void PlayersListModel::playerLeftRoom(const QString & nickname) |
139 void PlayersListModel::playerLeftRoom(const QString & nickname) |
131 { |
140 { |
132 emit nickRemoved(nickname); |
141 emit nickRemoved(nickname); |
133 |
142 |
134 QModelIndexList mil = match(index(0), Qt::DisplayRole, nickname, 1, Qt::MatchExactly); |
143 QModelIndex mi = nicknameIndex(nickname); |
135 |
144 |
136 if(mil.size()) |
145 if(mi.isValid()) |
137 { |
146 { |
138 setData(mil[0], false, RoomFilterRole); |
147 setData(mi, false, RoomFilterRole); |
139 setData(mil[0], false, RoomAdmin); |
148 setData(mi, false, RoomAdmin); |
140 setData(mil[0], false, Ready); |
149 setData(mi, false, Ready); |
141 setData(mil[0], false, InGame); |
150 setData(mi, false, InGame); |
142 updateIcon(mil[0]); |
151 updateIcon(mi); |
143 } |
152 } |
144 } |
153 } |
145 |
154 |
146 |
155 |
147 void PlayersListModel::setFlag(const QString &nickname, StateFlag flagType, bool isSet) |
156 void PlayersListModel::setFlag(const QString &nickname, StateFlag flagType, bool isSet) |
148 { |
157 { |
149 QModelIndexList mil = match(index(0), Qt::DisplayRole, nickname, 1, Qt::MatchExactly); |
158 if(flagType == Friend) |
150 |
159 { |
151 if(mil.size()) |
160 if(isSet) |
152 { |
161 m_friendsSet.insert(nickname.toLower()); |
153 setData(mil[0], isSet, flagType); |
162 else |
|
163 m_friendsSet.remove(nickname.toLower()); |
|
164 |
|
165 saveSet(m_friendsSet, "friends"); |
|
166 } |
|
167 else if(flagType == Ignore) |
|
168 { |
|
169 if(isSet) |
|
170 m_ignoredSet.insert(nickname.toLower()); |
|
171 else |
|
172 m_ignoredSet.remove(nickname.toLower()); |
|
173 |
|
174 saveSet(m_ignoredSet, "ignore"); |
|
175 } |
|
176 |
|
177 QModelIndex mi = nicknameIndex(nickname); |
|
178 |
|
179 if(mi.isValid()) |
|
180 { |
|
181 setData(mi, isSet, flagType); |
154 |
182 |
155 if(flagType == Friend || flagType == ServerAdmin |
183 if(flagType == Friend || flagType == ServerAdmin |
156 || flagType == Ignore || flagType == RoomAdmin) |
184 || flagType == Ignore || flagType == RoomAdmin) |
157 updateSortData(mil[0]); |
185 updateSortData(mi); |
158 |
186 |
159 if(flagType == Friend) |
187 updateIcon(mi); |
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]); |
|
180 } |
188 } |
181 } |
189 } |
182 |
190 |
183 |
191 |
184 bool PlayersListModel::isFlagSet(const QString & nickname, StateFlag flagType) |
192 bool PlayersListModel::isFlagSet(const QString & nickname, StateFlag flagType) |
185 { |
193 { |
186 QModelIndexList mil = match(index(0), Qt::DisplayRole, nickname, 1, Qt::MatchExactly); |
194 QModelIndex mi = nicknameIndex(nickname); |
187 |
195 |
188 if(mil.size()) |
196 if(mi.isValid()) |
189 return mil[0].data(flagType).toBool(); |
197 return mi.data(flagType).toBool(); |
|
198 else if(flagType == Friend) |
|
199 return isFriend(nickname); |
|
200 else if(flagType == Ignore) |
|
201 return isIgnored(nickname); |
190 else |
202 else |
191 return false; |
203 return false; |
192 } |
204 } |
193 |
205 |
194 void PlayersListModel::resetRoomFlags() |
206 void PlayersListModel::resetRoomFlags() |