[games/chessament] src: Fix starting rank not updated when deleting a player
Manuel Alcaraz Zambrano <[email protected]> Tue, 4 Aug 2026 14:20:41 +0000 (UTC)
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit a84d0429b2b74ad41cfb1f199e6db2ccf0a50341 by Manuel Alcaraz Zambrano.
Committed on 04/08/2026 at 14:19.
Pushed by manuelal into branch 'master'.
Fix starting rank not updated when deleting a player
M +2 -2 src/playersmodel.cpp
M +7 -0 src/tournament/tournament.cpp
https://invent.kde.org/games/chessament/-/commit/a84d0429b2b74ad41cfb1f199e6db2ccf0a50341
diff --git a/src/playersmodel.cpp b/src/playersmodel.cpp
index e8e7df2..5822864 100644
--- a/src/playersmodel.cpp
+++ b/src/playersmodel.cpp
@@ -304,9 +304,9 @@ void PlayersModel::deletePlayer(const QModelIndex &index)
return;
}
- beginRemoveRows({}, index.row(), index.row());
+ beginResetModel();
m_players.erase(m_players.begin() + index.row());
- endRemoveRows();
+ endResetModel();
}
void PlayersModel::updateRatings(int listId)
diff --git a/src/tournament/tournament.cpp b/src/tournament/tournament.cpp
index 128a361..8ee9c77 100644
--- a/src/tournament/tournament.cpp
+++ b/src/tournament/tournament.cpp
@@ -265,6 +265,7 @@ std::expected<void, QString> Tournament::addPlayer(std::unique_ptr<Player> playe
std::expected<void, QString> Tournament::deletePlayer(int startingRank)
{
Q_ASSERT(m_currentRound == 0);
+ Q_ASSERT(startingRank >= 1);
const auto &player = m_players.at(startingRank - 1);
@@ -282,6 +283,12 @@ std::expected<void, QString> Tournament::deletePlayer(int startingRank)
m_players.erase(m_players.begin() + startingRank - 1);
+ for (int i = startingRank - 1; i < static_cast<int>(m_players.size()); ++i) {
+ const auto &player = m_players.at(i);
+ player->setStartingRank(i + 1);
+ savePlayer(player.get());
+ }
+
Q_EMIT numberOfPlayersChanged();
Q_EMIT numberOfRatedPlayersChanged();