From 37b78a9a4c1f54aa620d37f08ba5eb14b24d5581 Mon Sep 17 00:00:00 2001 From: RickyRister <42636155+RickyRister@users.noreply.github.com> Date: Fri, 27 Dec 2024 16:01:36 -0800 Subject: [PATCH] change action's text to "unconcede" when player is conceded (#5351) --- cockatrice/src/client/tabs/tab_game.cpp | 15 ++++++++++++++- cockatrice/src/client/tabs/tab_game.h | 2 ++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/cockatrice/src/client/tabs/tab_game.cpp b/cockatrice/src/client/tabs/tab_game.cpp index 13eeb3376..5850c2ce8 100644 --- a/cockatrice/src/client/tabs/tab_game.cpp +++ b/cockatrice/src/client/tabs/tab_game.cpp @@ -536,6 +536,12 @@ void TabGame::updatePlayerListDockTitle() (playerListDock->isWindow() ? tabText : QString())); } +bool TabGame::isMainPlayerConceded() const +{ + Player *player = players.value(localPlayerId, nullptr); + return player && player->getConceded(); +} + void TabGame::retranslateUi() { QString tabText = " | " + (replay ? tr("Replay") : tr("Game")) + " #" + QString::number(gameInfo.game_id()); @@ -577,7 +583,11 @@ void TabGame::retranslateUi() if (aGameInfo) aGameInfo->setText(tr("Game &information")); if (aConcede) { - aConcede->setText(tr("&Concede")); + if (isMainPlayerConceded()) { + aConcede->setText(tr("Un&concede")); + } else { + aConcede->setText(tr("&Concede")); + } } if (aLeaveGame) { aLeaveGame->setText(tr("&Leave game")); @@ -874,6 +884,9 @@ Player *TabGame::addPlayer(int playerId, const ServerInfo_User &info) } } + // update menu text when player concedes so that "concede" gets updated to "unconcede" + connect(newPlayer, &Player::playerCountChanged, this, &TabGame::retranslateUi); + emit playerAdded(newPlayer); return newPlayer; } diff --git a/cockatrice/src/client/tabs/tab_game.h b/cockatrice/src/client/tabs/tab_game.h index e1c2c207e..0cabc697c 100644 --- a/cockatrice/src/client/tabs/tab_game.h +++ b/cockatrice/src/client/tabs/tab_game.h @@ -177,6 +177,8 @@ private: Player *addPlayer(int playerId, const ServerInfo_User &info); + bool isMainPlayerConceded() const; + void startGame(bool resuming); void stopGame(); void closeGame();