[Game] Use in-game menu for tally setting

This commit is contained in:
RickyRister 2026-06-19 04:06:37 -07:00
parent c5b37cdffe
commit ce53e03d42
10 changed files with 98 additions and 19 deletions

View file

@ -44,6 +44,8 @@ PlayerMenu::PlayerMenu(PlayerGraphicsItem *_player) : QObject(_player), player(_
utilityMenu = nullptr;
}
tallyMenu = addManagedMenu<TallyMenu>();
if (player->getLogic()->getPlayerInfo()->getLocal()) {
sayMenu = addManagedMenu<SayMenu>(player);
} else {

View file

@ -15,6 +15,7 @@
#include "rfg_menu.h"
#include "say_menu.h"
#include "sideboard_menu.h"
#include "tally_menu.h"
#include "utility_menu.h"
#include <QList>
@ -87,6 +88,7 @@ private:
GraveyardMenu *graveMenu;
RfgMenu *rfgMenu;
UtilityMenu *utilityMenu;
TallyMenu *tallyMenu;
SayMenu *sayMenu;
CustomZoneMenu *customZonesMenu;

View file

@ -0,0 +1,49 @@
#include "tally_menu.h"
#include "../../client/settings/cache_settings.h"
TallyMenu::TallyMenu()
{
aTallyNone = createTallyAction(TallyType::None);
aTallySubtype = createTallyAction(TallyType::Subtypes);
addAction(aTallyNone);
addSeparator();
addAction(aTallySubtype);
retranslateUi();
}
QAction *TallyMenu::createTallyAction(TallyType tallyType)
{
TallyType currentType = SettingsCache::instance().getTallyType();
QAction *action = new QAction(this);
action->setCheckable(true);
action->setChecked(tallyType == currentType);
connect(action, &QAction::triggered, &SettingsCache::instance(),
[tallyType] { SettingsCache::instance().setTallyType(tallyType); });
connect(&SettingsCache::instance(), &SettingsCache::tallyTypeChanged, action,
[action, tallyType](TallyType type) { action->setChecked(type == tallyType); });
return action;
}
void TallyMenu::setShortcutsActive()
{
// no-op because we haven't decided if we're adding shortcuts for tally types
}
void TallyMenu::setShortcutsInactive()
{
// no-op because we haven't decided if we're adding shortcuts for tally types
}
void TallyMenu::retranslateUi()
{
setTitle(tr("Tally"));
aTallyNone->setText(tr("None"));
aTallySubtype->setText(tr("Subtype"));
}

View file

@ -0,0 +1,28 @@
#ifndef COCKATRICE_TALLY_MENU_H
#define COCKATRICE_TALLY_MENU_H
#include "../../../interface/widgets/menus/tearoff_menu.h"
#include "../../tally/tally.h"
#include "abstract_player_component.h"
#include <QMenu>
class TallyMenu : public TearOffMenu, public AbstractPlayerComponent
{
Q_OBJECT
public:
explicit TallyMenu();
void setShortcutsActive() override;
void setShortcutsInactive() override;
void retranslateUi() override;
private:
QAction *aTallyNone = nullptr;
QAction *aTallySubtype = nullptr;
QAction *createTallyAction(TallyType tallyType);
};
#endif // COCKATRICE_TALLY_MENU_H