diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp index a10a2442f..3564a05a9 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp @@ -288,6 +288,8 @@ QMenu *DeckPreviewWidget::createRightClickMenu() connect(menu->addAction(tr("Edit Tags")), &QAction::triggered, deckTagsDisplayWidget, &DeckPreviewDeckTagsDisplayWidget::openTagEditDlg); + addSetBannerCardMenu(menu); + menu->addSeparator(); connect(menu->addAction(tr("Rename Deck")), &QAction::triggered, this, &DeckPreviewWidget::actRenameDeck); @@ -312,6 +314,28 @@ QMenu *DeckPreviewWidget::createRightClickMenu() return menu; } +/** + * Adds the "Set Banner Card" submenu to the given menu. Does nothing if bannerCardComboBox is null. + * @param menu The menu to add the submenu to + */ +void DeckPreviewWidget::addSetBannerCardMenu(QMenu *menu) +{ + if (!bannerCardComboBox) { + return; + } + + auto bannerCardMenu = menu->addMenu(tr("Set Banner Card")); + + for (int i = 0; i < bannerCardComboBox->count(); ++i) { + auto action = bannerCardMenu->addAction(bannerCardComboBox->itemText(i)); + connect(action, &QAction::triggered, this, [this, i] { bannerCardComboBox->setCurrentIndex(i); }); + + // the checkability is purely for visuals + action->setCheckable(true); + action->setChecked(bannerCardComboBox->currentIndex() == i); + } +} + void DeckPreviewWidget::actRenameDeck() { // read input diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h index 4dc5c5aa6..a9df635e5 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h @@ -59,6 +59,7 @@ public slots: private: QMenu *createRightClickMenu(); + void addSetBannerCardMenu(QMenu *menu); private slots: void actRenameDeck();