From 7ffd85b1c1493241a5937107b5121b88705be5f1 Mon Sep 17 00:00:00 2001 From: doitux Date: Wed, 9 Oct 2013 23:45:57 +0200 Subject: [PATCH] bugfix for "Idle players are not show correctly if they join YOUR game" #198 --- .../gamelobbydialog/gamelobbydialogimpl.cpp | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp b/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp index 2d0b8d99..0b9ab25e 100644 --- a/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp +++ b/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp @@ -563,16 +563,6 @@ void gameLobbyDialogImpl::updateGameItem(QList itemList, unsign PlayerIdList::const_iterator end = info.players.end(); while (i != end) { - //mark players as active - int it1 = 0; - while (myNickListModel->item(it1)) { - if (myNickListModel->item(it1, 0)->data(Qt::UserRole) == *i) { - myNickListModel->item(it1, 0)->setData("active", 34); - break; - } - ++it1; - } - if(myPlayerId == *i) { itemList.at(0)->setData( "MeInThisGame", 16); itemList.at(0)->setBackground(QBrush(QColor(0, 255, 0, 127))); @@ -594,6 +584,22 @@ void gameLobbyDialogImpl::updateGameItem(QList itemList, unsign ++i; } + //reset players iterator + i = info.players.begin(); + end = info.players.end(); + while (i != end) { + //mark players as active + int it1 = 0; + while (myNickListModel->item(it1)) { + if (myNickListModel->item(it1, 0)->data(Qt::UserRole) == *i) { + myNickListModel->item(it1, 0)->setData("active", 34); + break; + } + ++it1; + } + ++i; + } + QString playerStr; playerStr.sprintf("%u/%u", (unsigned)info.players.size(), (unsigned)info.data.maxNumberOfPlayers); itemList.at(1)->setData(playerStr, Qt::DisplayRole);