From 0d7047a7289f5a28ac5c97c2461544b10d91d9ce Mon Sep 17 00:00:00 2001 From: RickyRister <42636155+RickyRister@users.noreply.github.com> Date: Thu, 28 May 2026 02:05:26 -0700 Subject: [PATCH] [Game] Show color icons in counters menu (#6947) --- cockatrice/src/game/player/menu/card_menu.cpp | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/cockatrice/src/game/player/menu/card_menu.cpp b/cockatrice/src/game/player/menu/card_menu.cpp index 933f4094c..3b866d4e0 100644 --- a/cockatrice/src/game/player/menu/card_menu.cpp +++ b/cockatrice/src/game/player/menu/card_menu.cpp @@ -10,10 +10,27 @@ #include "move_menu.h" #include "pt_menu.h" +#include #include #include #include +/** + * @brief Creates a circular icon filled with the specified color. + */ +static QIcon createCircleIcon(const QColor &color) +{ + QPixmap pixmap(32, 32); + pixmap.fill(Qt::transparent); + QPainter painter(&pixmap); + painter.setRenderHint(QPainter::Antialiasing); + painter.setPen(Qt::NoPen); + painter.setBrush(color); + painter.drawEllipse(pixmap.rect()); + + return QIcon(pixmap); +} + CardMenu::CardMenu(PlayerLogic *_player, const CardItem *_card, bool _shortcutsActive) : player(_player), card(_card), shortcutsActive(_shortcutsActive) { @@ -77,9 +94,21 @@ CardMenu::CardMenu(PlayerLogic *_player, const CardItem *_card, bool _shortcutsA mCardCounters = new QMenu; for (int i = 0; i < 6; ++i) { + QColor color = SettingsCache::instance().cardCounters().color(i); + QIcon circleIcon = createCircleIcon(color); + auto *tempAddCounter = new QAction(this); + tempAddCounter->setIconVisibleInMenu(true); + tempAddCounter->setIcon(circleIcon); + auto *tempRemoveCounter = new QAction(this); + tempRemoveCounter->setIconVisibleInMenu(true); + tempRemoveCounter->setIcon(circleIcon); + auto *tempSetCounter = new QAction(this); + tempSetCounter->setIconVisibleInMenu(true); + tempSetCounter->setIcon(circleIcon); + aAddCounter.append(tempAddCounter); aRemoveCounter.append(tempRemoveCounter); aSetCounter.append(tempSetCounter);