mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-18 08:22:15 -07:00
Refactor sideboard menu.
Took 26 minutes
This commit is contained in:
parent
33dfbdb50f
commit
dbfefdee58
4 changed files with 67 additions and 34 deletions
|
|
@ -47,14 +47,11 @@ PlayerMenu::PlayerMenu(Player *_player) : player(_player)
|
||||||
playerMenu->addMenu(rfgMenu);
|
playerMenu->addMenu(rfgMenu);
|
||||||
|
|
||||||
if (player->getPlayerInfo()->getLocalOrJudge()) {
|
if (player->getPlayerInfo()->getLocalOrJudge()) {
|
||||||
sbMenu = playerMenu->addMenu(QString());
|
sideboardMenu = new SideboardMenu(player, playerMenu);
|
||||||
|
playerMenu->addMenu(sideboardMenu);
|
||||||
aViewSideboard = new QAction(this);
|
|
||||||
connect(aViewSideboard, &QAction::triggered, playerActions, &PlayerActions::actViewSideboard);
|
|
||||||
|
|
||||||
sbMenu->addAction(aViewSideboard);
|
|
||||||
|
|
||||||
customZonesMenu = new CustomZoneMenu(player);
|
customZonesMenu = new CustomZoneMenu(player);
|
||||||
|
playerMenu->addMenu(customZonesMenu);
|
||||||
playerMenu->addSeparator();
|
playerMenu->addSeparator();
|
||||||
|
|
||||||
countersMenu = playerMenu->addMenu(QString());
|
countersMenu = playerMenu->addMenu(QString());
|
||||||
|
|
@ -62,9 +59,8 @@ PlayerMenu::PlayerMenu(Player *_player) : player(_player)
|
||||||
utilityMenu = new UtilityMenu(player, playerMenu);
|
utilityMenu = new UtilityMenu(player, playerMenu);
|
||||||
} else {
|
} else {
|
||||||
countersMenu = nullptr;
|
countersMenu = nullptr;
|
||||||
sbMenu = nullptr;
|
sideboardMenu = nullptr;
|
||||||
customZonesMenu = nullptr;
|
customZonesMenu = nullptr;
|
||||||
aViewSideboard = nullptr;
|
|
||||||
utilityMenu = nullptr;
|
utilityMenu = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -99,7 +95,7 @@ void PlayerMenu::setMenusForGraphicItems()
|
||||||
if (player->getPlayerInfo()->getLocalOrJudge()) {
|
if (player->getPlayerInfo()->getLocalOrJudge()) {
|
||||||
player->getGraphicsItem()->getHandZoneGraphicsItem()->setMenu(handMenu);
|
player->getGraphicsItem()->getHandZoneGraphicsItem()->setMenu(handMenu);
|
||||||
player->getGraphicsItem()->getDeckZoneGraphicsItem()->setMenu(libraryMenu, libraryMenu->aDrawCard);
|
player->getGraphicsItem()->getDeckZoneGraphicsItem()->setMenu(libraryMenu, libraryMenu->aDrawCard);
|
||||||
player->getGraphicsItem()->getSideboardZoneGraphicsItem()->setMenu(sbMenu);
|
player->getGraphicsItem()->getSideboardZoneGraphicsItem()->setMenu(sideboardMenu);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -215,11 +211,9 @@ void PlayerMenu::retranslateUi()
|
||||||
rfgMenu->retranslateUi();
|
rfgMenu->retranslateUi();
|
||||||
|
|
||||||
if (player->getPlayerInfo()->getLocalOrJudge()) {
|
if (player->getPlayerInfo()->getLocalOrJudge()) {
|
||||||
aViewSideboard->setText(tr("&View sideboard"));
|
|
||||||
|
|
||||||
handMenu->retranslateUi();
|
handMenu->retranslateUi();
|
||||||
sbMenu->setTitle(tr("&Sideboard"));
|
|
||||||
libraryMenu->retranslateUi();
|
libraryMenu->retranslateUi();
|
||||||
|
sideboardMenu->retranslateUi();
|
||||||
utilityMenu->retranslateUi();
|
utilityMenu->retranslateUi();
|
||||||
countersMenu->setTitle(tr("&Counters"));
|
countersMenu->setTitle(tr("&Counters"));
|
||||||
customZonesMenu->retranslateUi();
|
customZonesMenu->retranslateUi();
|
||||||
|
|
@ -234,24 +228,9 @@ void PlayerMenu::retranslateUi()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlayerMenu::setShortcutIfItExists(QAction *action, ShortcutKey shortcut)
|
|
||||||
{
|
|
||||||
if (action) {
|
|
||||||
action->setShortcuts(shortcut);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void PlayerMenu::clearShortcutIfItExists(QAction *action)
|
|
||||||
{
|
|
||||||
if (action) {
|
|
||||||
action->setShortcut(QKeySequence());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void PlayerMenu::setShortcutsActive()
|
void PlayerMenu::setShortcutsActive()
|
||||||
{
|
{
|
||||||
shortcutsActive = true;
|
shortcutsActive = true;
|
||||||
ShortcutsSettings &shortcuts = SettingsCache::instance().shortcuts();
|
|
||||||
|
|
||||||
if (handMenu) {
|
if (handMenu) {
|
||||||
handMenu->setShortcutsActive();
|
handMenu->setShortcutsActive();
|
||||||
|
|
@ -269,15 +248,12 @@ void PlayerMenu::setShortcutsActive()
|
||||||
counterIterator.next().value()->setShortcutsActive();
|
counterIterator.next().value()->setShortcutsActive();
|
||||||
}
|
}
|
||||||
|
|
||||||
setShortcutIfItExists(aViewSideboard, shortcuts.getShortcut("Player/aViewSideboard"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlayerMenu::setShortcutsInactive()
|
void PlayerMenu::setShortcutsInactive()
|
||||||
{
|
{
|
||||||
shortcutsActive = false;
|
shortcutsActive = false;
|
||||||
|
|
||||||
clearShortcutIfItExists(aViewSideboard);
|
|
||||||
|
|
||||||
QMapIterator<int, AbstractCounter *> counterIterator(player->getCounters());
|
QMapIterator<int, AbstractCounter *> counterIterator(player->getCounters());
|
||||||
while (counterIterator.hasNext()) {
|
while (counterIterator.hasNext()) {
|
||||||
counterIterator.next().value()->setShortcutsInactive();
|
counterIterator.next().value()->setShortcutsInactive();
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
#include "library_menu.h"
|
#include "library_menu.h"
|
||||||
#include "rfg_menu.h"
|
#include "rfg_menu.h"
|
||||||
#include "say_menu.h"
|
#include "say_menu.h"
|
||||||
|
#include "sideboard_menu.h"
|
||||||
#include "utility_menu.h"
|
#include "utility_menu.h"
|
||||||
|
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
|
|
@ -66,16 +67,15 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void setShortcutsActive();
|
void setShortcutsActive();
|
||||||
void setShortcutIfItExists(QAction *action, ShortcutKey shortcut);
|
|
||||||
void clearShortcutIfItExists(QAction *action);
|
|
||||||
void setShortcutsInactive();
|
void setShortcutsInactive();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Player *player;
|
Player *player;
|
||||||
TearOffMenu *playerMenu;
|
TearOffMenu *playerMenu;
|
||||||
QMenu *sbMenu, *countersMenu;
|
QMenu *countersMenu;
|
||||||
HandMenu *handMenu;
|
HandMenu *handMenu;
|
||||||
LibraryMenu *libraryMenu;
|
LibraryMenu *libraryMenu;
|
||||||
|
SideboardMenu *sideboardMenu;
|
||||||
GraveyardMenu *graveMenu;
|
GraveyardMenu *graveMenu;
|
||||||
RfgMenu *rfgMenu;
|
RfgMenu *rfgMenu;
|
||||||
UtilityMenu *utilityMenu;
|
UtilityMenu *utilityMenu;
|
||||||
|
|
@ -83,7 +83,6 @@ private:
|
||||||
CustomZoneMenu *customZonesMenu;
|
CustomZoneMenu *customZonesMenu;
|
||||||
QList<QMenu *> playerLists;
|
QList<QMenu *> playerLists;
|
||||||
QList<QAction *> allPlayersActions;
|
QList<QAction *> allPlayersActions;
|
||||||
QAction *aViewSideboard;
|
|
||||||
|
|
||||||
bool shortcutsActive;
|
bool shortcutsActive;
|
||||||
|
|
||||||
|
|
|
||||||
35
cockatrice/src/game/player/menu/sideboard_menu.cpp
Normal file
35
cockatrice/src/game/player/menu/sideboard_menu.cpp
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
#include "sideboard_menu.h"
|
||||||
|
|
||||||
|
#include "../player.h"
|
||||||
|
|
||||||
|
SideboardMenu::SideboardMenu(Player *player, QMenu *playerMenu)
|
||||||
|
{
|
||||||
|
aViewSideboard = new QAction(this);
|
||||||
|
connect(aViewSideboard, &QAction::triggered, player->getPlayerActions(), &PlayerActions::actViewSideboard);
|
||||||
|
|
||||||
|
if (player->getPlayerInfo()->getLocalOrJudge()) {
|
||||||
|
addAction(aViewSideboard);
|
||||||
|
}
|
||||||
|
|
||||||
|
retranslateUi();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SideboardMenu::retranslateUi()
|
||||||
|
{
|
||||||
|
setTitle(tr("&Sideboard"));
|
||||||
|
aViewSideboard->setText(tr("&View sideboard"));
|
||||||
|
}
|
||||||
|
|
||||||
|
void SideboardMenu::setShortcutsActive()
|
||||||
|
{
|
||||||
|
ShortcutsSettings &shortcuts = SettingsCache::instance().shortcuts();
|
||||||
|
|
||||||
|
if (player->getPlayerInfo()->getLocalOrJudge()) {
|
||||||
|
aViewSideboard->setShortcuts(shortcuts.getShortcut("Player/aViewSideboard"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SideboardMenu::setShortcutsInactive()
|
||||||
|
{
|
||||||
|
aViewSideboard->setShortcut(QKeySequence());
|
||||||
|
}
|
||||||
23
cockatrice/src/game/player/menu/sideboard_menu.h
Normal file
23
cockatrice/src/game/player/menu/sideboard_menu.h
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
#ifndef COCKATRICE_SIDEBOARD_MENU_H
|
||||||
|
#define COCKATRICE_SIDEBOARD_MENU_H
|
||||||
|
|
||||||
|
#include <QMenu>
|
||||||
|
|
||||||
|
class Player;
|
||||||
|
class SideboardMenu : public QMenu
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit SideboardMenu(Player *player, QMenu *playerMenu);
|
||||||
|
void retranslateUi();
|
||||||
|
void setShortcutsActive();
|
||||||
|
void setShortcutsInactive();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Player *player;
|
||||||
|
|
||||||
|
QAction *aViewSideboard;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // COCKATRICE_SIDEBOARD_MENU_H
|
||||||
Loading…
Add table
Add a link
Reference in a new issue