From 7268eb391235abe6beacc2e481bac2d77e0a1b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Basile=20Cl=C3=A9ment?= Date: Thu, 1 May 2025 13:52:32 +0200 Subject: [PATCH] Place card counter actions in separate menu --- cockatrice/src/game/player/player.cpp | 17 ++++++++++------- cockatrice/src/game/player/player.h | 2 +- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/cockatrice/src/game/player/player.cpp b/cockatrice/src/game/player/player.cpp index f1fa4c72c..2380454b9 100644 --- a/cockatrice/src/game/player/player.cpp +++ b/cockatrice/src/game/player/player.cpp @@ -417,6 +417,8 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, bool _judge, T createPredefinedTokenMenu = new QMenu(QString()); createPredefinedTokenMenu->setEnabled(false); + mCardCounters = new QMenu; + playerMenu->addSeparator(); countersMenu = playerMenu->addMenu(QString()); playerMenu->addSeparator(); @@ -458,6 +460,7 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, bool _judge, T sbMenu = nullptr; aCreateAnotherToken = nullptr; createPredefinedTokenMenu = nullptr; + mCardCounters = nullptr; } aTap = new QAction(this); @@ -886,6 +889,7 @@ void Player::retranslateUi() auto &cardCounterSettings = SettingsCache::instance().cardCounters(); + mCardCounters->setTitle(tr("Ca&rd counters")); for (int i = 0; i < aAddCounter.size(); ++i) { aAddCounter[i]->setText(tr("&Add counter (%1)").arg(cardCounterSettings.displayName(i))); } @@ -3883,18 +3887,17 @@ void Player::updateCardMenu(const CardItem *card) cardMenu->addAction(aSelectRow); cardMenu->addSeparator(); - auto *cardCountersMenu = new QMenu(tr("Other counters")); + mCardCounters->clear(); for (int i = 0; i < aAddCounter.size(); ++i) { - auto *targetMenu = i < 3 ? cardMenu : cardCountersMenu; - targetMenu->addSeparator(); - targetMenu->addAction(aAddCounter[i]); + mCardCounters->addSeparator(); + mCardCounters->addAction(aAddCounter[i]); if (card->getCounters().contains(i)) { - targetMenu->addAction(aRemoveCounter[i]); + mCardCounters->addAction(aRemoveCounter[i]); } - targetMenu->addAction(aSetCounter[i]); + mCardCounters->addAction(aSetCounter[i]); } cardMenu->addSeparator(); - cardMenu->addMenu(cardCountersMenu); + cardMenu->addMenu(mCardCounters); } else if (card->getZone()->getName() == "stack") { // Card is on the stack if (canModifyCard) { diff --git a/cockatrice/src/game/player/player.h b/cockatrice/src/game/player/player.h index ea5278572..960a24057 100644 --- a/cockatrice/src/game/player/player.h +++ b/cockatrice/src/game/player/player.h @@ -253,7 +253,7 @@ public: private: TabGame *game; QMenu *sbMenu, *countersMenu, *sayMenu, *createPredefinedTokenMenu, *mRevealLibrary, *mLendLibrary, *mRevealTopCard, - *mRevealHand, *mRevealRandomHandCard, *mRevealRandomGraveyardCard; + *mRevealHand, *mRevealRandomHandCard, *mRevealRandomGraveyardCard, *mCardCounters; TearOffMenu *moveGraveMenu, *moveRfgMenu, *graveMenu, *moveHandMenu, *handMenu, *libraryMenu, *topLibraryMenu, *bottomLibraryMenu, *rfgMenu, *playerMenu; QList playerLists;