equal
deleted
inserted
replaced
89 insertRow(rowCount()); |
89 insertRow(rowCount()); |
90 |
90 |
91 QModelIndex mi = index(rowCount() - 1); |
91 QModelIndex mi = index(rowCount() - 1); |
92 setData(mi, nickname); |
92 setData(mi, nickname); |
93 |
93 |
94 updateSortData(mi); |
|
95 checkFriendIgnore(mi); |
94 checkFriendIgnore(mi); |
96 } |
95 } |
97 |
96 |
98 |
97 |
99 void PlayersListModel::removePlayer(const QString & nickname) |
98 void PlayersListModel::removePlayer(const QString & nickname) |
266 } |
265 } |
267 |
266 |
268 |
267 |
269 void PlayersListModel::updateSortData(const QModelIndex & index) |
268 void PlayersListModel::updateSortData(const QModelIndex & index) |
270 { |
269 { |
271 QString result = QString("%1%2%3%4%5") |
270 QString result = QString("%1%2%3%4%5%6") |
|
271 // room admins go first, then server admins, then friends |
272 .arg(1 - index.data(RoomAdmin).toInt()) |
272 .arg(1 - index.data(RoomAdmin).toInt()) |
273 .arg(1 - index.data(ServerAdmin).toInt()) |
273 .arg(1 - index.data(ServerAdmin).toInt()) |
274 .arg(1 - index.data(Friend).toInt()) |
274 .arg(1 - index.data(Friend).toInt()) |
|
275 // ignored at bottom |
275 .arg(index.data(Ignore).toInt()) |
276 .arg(index.data(Ignore).toInt()) |
|
277 // keep nicknames starting from non-letter character at bottom within group |
|
278 // assume there are no empty nicks in list |
|
279 .arg(index.data(Qt::DisplayRole).toString().at(0).isLetter() ? 0 : 1) |
|
280 // sort ignoring case |
276 .arg(index.data(Qt::DisplayRole).toString().toLower()) |
281 .arg(index.data(Qt::DisplayRole).toString().toLower()) |
277 ; |
282 ; |
278 |
283 |
279 setData(index, result, SortRole); |
284 setData(index, result, SortRole); |
280 } |
285 } |
296 { |
301 { |
297 setData(mi, m_friendsSet.contains(mi.data().toString().toLower()), Friend); |
302 setData(mi, m_friendsSet.contains(mi.data().toString().toLower()), Friend); |
298 setData(mi, m_ignoredSet.contains(mi.data().toString().toLower()), Ignore); |
303 setData(mi, m_ignoredSet.contains(mi.data().toString().toLower()), Ignore); |
299 |
304 |
300 updateIcon(mi); |
305 updateIcon(mi); |
|
306 updateSortData(mi); |
301 } |
307 } |
302 |
308 |
303 void PlayersListModel::loadSet(QSet<QString> & set, const QString & suffix) |
309 void PlayersListModel::loadSet(QSet<QString> & set, const QString & suffix) |
304 { |
310 { |
305 set.clear(); |
311 set.clear(); |