Cockatrice 2026-06-27-Development-3.1.0-beta.3
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
library_menu.h
Go to the documentation of this file.
1
6
7#ifndef COCKATRICE_LIBRARY_MENU_H
8#define COCKATRICE_LIBRARY_MENU_H
9
12
13#include <QAction>
14#include <QMenu>
15
17class PlayerLogic;
18class PlayerActions;
19
21{
22 Q_OBJECT
23public slots:
26
27public:
28 LibraryMenu(PlayerGraphicsItem *player, QWidget *parent = nullptr);
29 void createDrawActions();
31 void createMoveActions();
32 void createViewActions();
33 void retranslateUi() override;
40 void setShortcutsActive() override;
41 void setShortcutsInactive() override;
42
43 [[nodiscard]] bool isAlwaysRevealTopCardChecked() const
44 {
45 return aAlwaysRevealTopCard->isChecked();
46 }
47
48 [[nodiscard]] bool isAlwaysLookAtTopCardChecked() const
49 {
50 return aAlwaysLookAtTopCard->isChecked();
51 }
52
53 // expose useful actions/menus if PlayerMenu needs them
54 [[nodiscard]] QMenu *revealLibrary() const
55 {
56 return mRevealLibrary;
57 }
58 [[nodiscard]] QMenu *lendLibraryMenu() const
59 {
60 return mLendLibrary;
61 }
62 [[nodiscard]] QMenu *revealTopCardMenu() const
63 {
64 return mRevealTopCard;
65 }
66
67 QMenu *topLibraryMenu = nullptr;
68 QMenu *bottomLibraryMenu = nullptr;
69
70 // Expose submenus that PlayerMenu tracks in its lists
71 QMenu *mRevealLibrary = nullptr;
72 QMenu *mLendLibrary = nullptr;
73 QMenu *mRevealTopCard = nullptr;
74
75 QAction *aDrawCard = nullptr;
76 QAction *aDrawCards = nullptr;
77 QAction *aUndoDraw = nullptr;
78
79 QAction *aShuffle = nullptr;
80 QAction *aViewLibrary = nullptr;
81 QAction *aViewTopCards = nullptr;
82 QAction *aViewBottomCards = nullptr;
83 QAction *aAlwaysRevealTopCard = nullptr;
84 QAction *aAlwaysLookAtTopCard = nullptr;
85 QAction *aOpenDeckInDeckEditor = nullptr;
86
87 QAction *aMoveTopToPlay = nullptr;
88 QAction *aMoveTopToPlayFaceDown = nullptr;
89 QAction *aMoveTopCardToBottom = nullptr;
90 QAction *aMoveTopCardToGraveyard = nullptr;
91 QAction *aMoveTopCardToExile = nullptr;
92 QAction *aMoveTopCardsToGraveyard = nullptr;
94 QAction *aMoveTopCardsToExile = nullptr;
95 QAction *aMoveTopCardsToExileFaceDown = nullptr;
96 QAction *aMoveTopCardsUntil = nullptr;
97 QAction *aShuffleTopCards = nullptr;
98
99 QAction *aDrawBottomCard = nullptr;
100 QAction *aDrawBottomCards = nullptr;
101 QAction *aMoveBottomToPlay = nullptr;
102 QAction *aMoveBottomToPlayFaceDown = nullptr;
103 QAction *aMoveBottomCardToTop = nullptr;
104 QAction *aMoveBottomCardToGraveyard = nullptr;
105 QAction *aMoveBottomCardToExile = nullptr;
106 QAction *aMoveBottomCardsToGraveyard = nullptr;
108 QAction *aMoveBottomCardsToExile = nullptr;
110 QAction *aShuffleBottomCards = nullptr;
111
113
114private:
116};
117
118#endif // COCKATRICE_LIBRARY_MENU_H
Polymorphic interface for player-bound UI components managed by PlayerMenu.
Interface for player-bound UI components that need shortcut and translation lifecycle management.
Definition abstract_player_component.h:18
QAction * aViewLibrary
Definition library_menu.h:80
QAction * aMoveTopCardsToExileFaceDown
Definition library_menu.h:95
QAction * aDrawCard
Definition library_menu.h:75
QMenu * topLibraryMenu
Definition library_menu.h:67
void createShuffleActions()
Definition library_menu.cpp:115
void createMoveActions()
Definition library_menu.cpp:129
QAction * aViewBottomCards
Definition library_menu.h:82
void populateRevealLibraryMenuWithActivePlayers()
Definition library_menu.cpp:259
QAction * aAlwaysRevealTopCard
Definition library_menu.h:83
QAction * aMoveBottomCardToGraveyard
Definition library_menu.h:104
QMenu * bottomLibraryMenu
Definition library_menu.h:68
QAction * aDrawCards
Definition library_menu.h:76
QMenu * mRevealLibrary
Definition library_menu.h:71
void retranslateUi() override
Retranslate all user-visible strings. Called on language change.
Definition library_menu.cpp:209
QAction * aMoveTopCardsToGraveyardFaceDown
Definition library_menu.h:93
QAction * aMoveTopToPlay
Definition library_menu.h:87
void createDrawActions()
Definition library_menu.cpp:97
int defaultNumberTopCards
Definition library_menu.h:112
QMenu * lendLibraryMenu() const
Definition library_menu.h:58
QAction * aShuffleBottomCards
Definition library_menu.h:110
LibraryMenu(PlayerGraphicsItem *player, QWidget *parent=nullptr)
Definition library_menu.cpp:15
void onRevealTopCardTriggered()
Definition library_menu.cpp:330
void populateLendLibraryMenuWithActivePlayers()
Definition library_menu.cpp:280
QAction * aMoveTopCardToGraveyard
Definition library_menu.h:90
QAction * aViewTopCards
Definition library_menu.h:81
QAction * aShuffleTopCards
Definition library_menu.h:97
QAction * aMoveBottomCardsToExileFaceDown
Definition library_menu.h:109
PlayerGraphicsItem * player
Definition library_menu.h:115
QAction * aMoveBottomCardToTop
Definition library_menu.h:103
QAction * aShuffle
Definition library_menu.h:79
bool isAlwaysLookAtTopCardChecked() const
Definition library_menu.h:48
void createViewActions()
Definition library_menu.cpp:185
QAction * aMoveTopCardToExile
Definition library_menu.h:91
QAction * aMoveBottomToPlay
Definition library_menu.h:101
QAction * aMoveTopCardsToExile
Definition library_menu.h:94
QAction * aMoveBottomCardsToGraveyard
Definition library_menu.h:106
void setShortcutsActive() override
Bind keyboard shortcuts. Called when this player gains focus.
Definition library_menu.cpp:351
void onRevealLibraryTriggered()
Definition library_menu.cpp:316
QAction * aDrawBottomCards
Definition library_menu.h:100
QAction * aMoveTopCardToBottom
Definition library_menu.h:89
QAction * aUndoDraw
Definition library_menu.h:77
QAction * aMoveBottomCardsToExile
Definition library_menu.h:108
void populateRevealTopCardMenuWithActivePlayers()
Definition library_menu.cpp:295
QMenu * mRevealTopCard
Definition library_menu.h:73
void resetTopCardMenuActions()
Definition library_menu.cpp:91
bool isAlwaysRevealTopCardChecked() const
Definition library_menu.h:43
QAction * aOpenDeckInDeckEditor
Definition library_menu.h:85
QMenu * revealTopCardMenu() const
Definition library_menu.h:62
QAction * aMoveBottomToPlayFaceDown
Definition library_menu.h:102
QAction * aMoveTopCardsUntil
Definition library_menu.h:96
QMenu * mLendLibrary
Definition library_menu.h:72
void onLendLibraryTriggered()
Definition library_menu.cpp:323
QAction * aMoveTopCardsToGraveyard
Definition library_menu.h:92
void setShortcutsInactive() override
Unbind keyboard shortcuts. Called when this player loses focus.
Definition library_menu.cpp:389
void enableOpenInDeckEditorAction() const
Definition library_menu.cpp:86
QAction * aMoveBottomCardToExile
Definition library_menu.h:105
QAction * aDrawBottomCard
Definition library_menu.h:99
QMenu * revealLibrary() const
Definition library_menu.h:54
QAction * aAlwaysLookAtTopCard
Definition library_menu.h:84
QAction * aMoveTopToPlayFaceDown
Definition library_menu.h:88
QAction * aMoveBottomCardsToGraveyardFaceDown
Definition library_menu.h:107
Definition player_actions.h:36
Definition player_graphics_item.h:25
Definition player_logic.h:64
TearOffMenu(const QString &title, QWidget *parent=nullptr)
Definition tearoff_menu.h:16