Place card counter actions in separate menu

This commit is contained in:
Basile Clément 2025-05-01 13:52:32 +02:00
parent 1cb5220485
commit 7268eb3912
No known key found for this signature in database
2 changed files with 11 additions and 8 deletions

View file

@ -417,6 +417,8 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, bool _judge, T
createPredefinedTokenMenu = new QMenu(QString()); createPredefinedTokenMenu = new QMenu(QString());
createPredefinedTokenMenu->setEnabled(false); createPredefinedTokenMenu->setEnabled(false);
mCardCounters = new QMenu;
playerMenu->addSeparator(); playerMenu->addSeparator();
countersMenu = playerMenu->addMenu(QString()); countersMenu = playerMenu->addMenu(QString());
playerMenu->addSeparator(); playerMenu->addSeparator();
@ -458,6 +460,7 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, bool _judge, T
sbMenu = nullptr; sbMenu = nullptr;
aCreateAnotherToken = nullptr; aCreateAnotherToken = nullptr;
createPredefinedTokenMenu = nullptr; createPredefinedTokenMenu = nullptr;
mCardCounters = nullptr;
} }
aTap = new QAction(this); aTap = new QAction(this);
@ -886,6 +889,7 @@ void Player::retranslateUi()
auto &cardCounterSettings = SettingsCache::instance().cardCounters(); auto &cardCounterSettings = SettingsCache::instance().cardCounters();
mCardCounters->setTitle(tr("Ca&rd counters"));
for (int i = 0; i < aAddCounter.size(); ++i) { for (int i = 0; i < aAddCounter.size(); ++i) {
aAddCounter[i]->setText(tr("&Add counter (%1)").arg(cardCounterSettings.displayName(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->addAction(aSelectRow);
cardMenu->addSeparator(); cardMenu->addSeparator();
auto *cardCountersMenu = new QMenu(tr("Other counters")); mCardCounters->clear();
for (int i = 0; i < aAddCounter.size(); ++i) { for (int i = 0; i < aAddCounter.size(); ++i) {
auto *targetMenu = i < 3 ? cardMenu : cardCountersMenu; mCardCounters->addSeparator();
targetMenu->addSeparator(); mCardCounters->addAction(aAddCounter[i]);
targetMenu->addAction(aAddCounter[i]);
if (card->getCounters().contains(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->addSeparator();
cardMenu->addMenu(cardCountersMenu); cardMenu->addMenu(mCardCounters);
} else if (card->getZone()->getName() == "stack") { } else if (card->getZone()->getName() == "stack") {
// Card is on the stack // Card is on the stack
if (canModifyCard) { if (canModifyCard) {

View file

@ -253,7 +253,7 @@ public:
private: private:
TabGame *game; TabGame *game;
QMenu *sbMenu, *countersMenu, *sayMenu, *createPredefinedTokenMenu, *mRevealLibrary, *mLendLibrary, *mRevealTopCard, QMenu *sbMenu, *countersMenu, *sayMenu, *createPredefinedTokenMenu, *mRevealLibrary, *mLendLibrary, *mRevealTopCard,
*mRevealHand, *mRevealRandomHandCard, *mRevealRandomGraveyardCard; *mRevealHand, *mRevealRandomHandCard, *mRevealRandomGraveyardCard, *mCardCounters;
TearOffMenu *moveGraveMenu, *moveRfgMenu, *graveMenu, *moveHandMenu, *handMenu, *libraryMenu, *topLibraryMenu, TearOffMenu *moveGraveMenu, *moveRfgMenu, *graveMenu, *moveHandMenu, *handMenu, *libraryMenu, *topLibraryMenu,
*bottomLibraryMenu, *rfgMenu, *playerMenu; *bottomLibraryMenu, *rfgMenu, *playerMenu;
QList<QMenu *> playerLists; QList<QMenu *> playerLists;