mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-05 09:33:25 -08:00
* [Refactor] Move game logic into libcockatrice_game * [Refactor] Include card_state.h in player_actions.h * [Game] Inject settings providers into libcockatrice_game, drop Widgets * [Game] Follow base rename to createCardRequested after rebase * [Game] Drop unused CardItem forward declaration * [Game] Fix includes after moving game logic into libcockatrice_game --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
61 lines
1.5 KiB
C++
61 lines
1.5 KiB
C++
#include "say_menu.h"
|
|
|
|
#include "../../../client/settings/cache_settings.h"
|
|
#include "../player_graphics_item.h"
|
|
|
|
#include <QAction>
|
|
#include <QKeySequence>
|
|
#include <QList>
|
|
#include <QString>
|
|
#include <libcockatrice/game/player/player_actions.h>
|
|
#include <libcockatrice/game/player/player_logic.h>
|
|
#include <libcockatrice/settings/message_settings.h>
|
|
|
|
SayMenu::SayMenu(PlayerGraphicsItem *_player) : player(_player)
|
|
{
|
|
connect(&SettingsCache::instance().messages(), &MessageSettings::messageMacrosChanged, this, &SayMenu::initSayMenu);
|
|
initSayMenu();
|
|
retranslateUi();
|
|
}
|
|
|
|
void SayMenu::retranslateUi()
|
|
{
|
|
setTitle(tr("S&ay"));
|
|
}
|
|
|
|
void SayMenu::setShortcutsActive()
|
|
{
|
|
shortcutsActive = true;
|
|
|
|
const auto menuActions = actions();
|
|
for (int i = 0; i < menuActions.size() && i < 10; ++i) {
|
|
menuActions[i]->setShortcut(QKeySequence("Ctrl+" + QString::number((i + 1) % 10)));
|
|
}
|
|
}
|
|
|
|
void SayMenu::setShortcutsInactive()
|
|
{
|
|
shortcutsActive = false;
|
|
|
|
for (auto *action : actions()) {
|
|
action->setShortcut(QKeySequence());
|
|
}
|
|
}
|
|
|
|
void SayMenu::initSayMenu()
|
|
{
|
|
clear();
|
|
|
|
int count = SettingsCache::instance().messages().getCount();
|
|
setEnabled(count > 0);
|
|
|
|
for (int i = 0; i < count; ++i) {
|
|
auto *newAction = new QAction(SettingsCache::instance().messages().getMessageAt(i), this);
|
|
connect(newAction, &QAction::triggered, player->getLogic()->getPlayerActions(), &PlayerActions::actSayMessage);
|
|
addAction(newAction);
|
|
}
|
|
|
|
if (shortcutsActive) {
|
|
setShortcutsActive();
|
|
}
|
|
}
|