This commit is contained in:
DawnFire42 2026-09-20 15:39:03 -07:00 committed by GitHub
commit c9bb40951b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 19 additions and 13 deletions

View file

@ -203,7 +203,7 @@ void CardMenu::createTableMenu(bool canModifyCard)
}
addSeparator();
addAction(aClone);
addMenu(new MoveMenu(player));
addMenu(new MoveMenu(player, this));
addSeparator();
addAction(aAttach);
if (card->getAttachedTo()) {
@ -253,7 +253,7 @@ void CardMenu::createStackMenu(bool canModifyCard)
addAction(aPlayFacedown);
addSeparator();
addAction(aClone);
addMenu(new MoveMenu(player));
addMenu(new MoveMenu(player, this));
addSeparator();
addAction(aAttach);
addAction(aDrawArrow);
@ -282,7 +282,7 @@ void CardMenu::createGraveyardOrExileMenu(bool canModifyCard)
addAction(aPlayFacedown);
addSeparator();
addAction(aClone);
addMenu(new MoveMenu(player));
addMenu(new MoveMenu(player, this));
addSeparator();
addAction(aAttach);
addAction(aDrawArrow);
@ -320,7 +320,7 @@ void CardMenu::createHandOrCustomZoneMenu(bool canModifyCard)
addSeparator();
addAction(aClone);
addMenu(new MoveMenu(player));
addMenu(new MoveMenu(player, this));
// actions that are really wonky when done from deck or sideboard
if (card->getZone()->getName() == ZoneNames::HAND) {
@ -344,7 +344,7 @@ void CardMenu::createHandOrCustomZoneMenu(bool canModifyCard)
void CardMenu::createZonelessMenu(bool canModifyCard)
{
if (canModifyCard) {
addMenu(new MoveMenu(player));
addMenu(new MoveMenu(player, this));
}
}

View file

@ -6,7 +6,7 @@
#include "../card_menu_action_type.h"
#include "../player_graphics_item.h"
MoveMenu::MoveMenu(PlayerGraphicsItem *player) : QMenu(tr("Move to"))
MoveMenu::MoveMenu(PlayerGraphicsItem *player, QWidget *parent) : QMenu(tr("Move to"), parent)
{
aMoveToTopLibrary = new QAction(this);
aMoveToTopLibrary->setData(cmMoveToTopLibrary);

View file

@ -14,7 +14,7 @@ class MoveMenu : public QMenu
Q_OBJECT
public:
explicit MoveMenu(PlayerGraphicsItem *player);
explicit MoveMenu(PlayerGraphicsItem *player, QWidget *parent);
void setShortcutsActive();
void retranslateUi();

View file

@ -74,6 +74,11 @@ void PlayerMenu::setMenusForGraphicItems()
QMenu *PlayerMenu::updateCardMenu(const CardItem *card)
{
if (cardMenu) {
cardMenu->deleteLater();
cardMenu = nullptr;
}
if (!card) {
emit cardMenuUpdated(nullptr);
return nullptr;
@ -87,11 +92,11 @@ QMenu *PlayerMenu::updateCardMenu(const CardItem *card)
return nullptr;
}
CardMenu *menu = new CardMenu(player, card, shortcutsActive);
connect(menu, &CardMenu::cardInfoRequested, this, &PlayerMenu::cardInfoRequested);
emit cardMenuUpdated(menu);
cardMenu = new CardMenu(player, card, shortcutsActive);
connect(cardMenu, &CardMenu::cardInfoRequested, this, &PlayerMenu::cardInfoRequested);
emit cardMenuUpdated(cardMenu);
return menu;
return cardMenu;
}
void PlayerMenu::retranslateUi()

View file

@ -97,6 +97,7 @@ private:
* player->getCounters().
*/
QList<AbstractPlayerComponent *> managedComponents;
CardMenu *cardMenu = nullptr;
bool shortcutsActive = false;
/** @brief Creates component, adds it as a submenu of playerMenu, and registers in managedComponents. */

View file

@ -1031,8 +1031,8 @@ void TabGame::setCardMenu(CardMenu *menu)
if (menu) {
aCardMenu->setMenu(menu);
} else {
aCardMenu->setMenu(new QMenu);
} else if (aCardMenu->menu()) {
aCardMenu->menu()->clear();
}
}