From b4bfa17cee84a0f8a0db879a9d65523655786681 Mon Sep 17 00:00:00 2001 From: Alexander Choi <32470094+AlexanderJChoi@users.noreply.github.com> Date: Wed, 9 Oct 2024 15:08:57 -0600 Subject: [PATCH] In-game message macros available immediately in active games (#5113) * In-game message macros available immediately in active games * fix formatting * init sayMenu actions with sayMenu as parent --- cockatrice/src/dlg_settings.cpp | 1 + cockatrice/src/player.cpp | 3 ++- cockatrice/src/player.h | 3 ++- cockatrice/src/settings/messagesettings.h | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/cockatrice/src/dlg_settings.cpp b/cockatrice/src/dlg_settings.cpp index 80526f9b0..fdf57e9ef 100644 --- a/cockatrice/src/dlg_settings.cpp +++ b/cockatrice/src/dlg_settings.cpp @@ -1001,6 +1001,7 @@ void MessagesSettingsPage::storeSettings() SettingsCache::instance().messages().setCount(messageList->count()); for (int i = 0; i < messageList->count(); i++) SettingsCache::instance().messages().setMessageAt(i, messageList->item(i)->text()); + emit SettingsCache::instance().messages().messageMacrosChanged(); } void MessagesSettingsPage::actAdd() diff --git a/cockatrice/src/player.cpp b/cockatrice/src/player.cpp index 70fac1eb5..ea76b95ba 100644 --- a/cockatrice/src/player.cpp +++ b/cockatrice/src/player.cpp @@ -419,6 +419,7 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, bool _judge, T if (local) { sayMenu = playerMenu->addMenu(QString()); + connect(&SettingsCache::instance().messages(), SIGNAL(messageMacrosChanged()), this, SLOT(initSayMenu())); initSayMenu(); } @@ -1036,7 +1037,7 @@ void Player::initSayMenu() sayMenu->setEnabled(count > 0); for (int i = 0; i < count; ++i) { - auto *newAction = new QAction(SettingsCache::instance().messages().getMessageAt(i), this); + auto *newAction = new QAction(SettingsCache::instance().messages().getMessageAt(i), sayMenu); if (i < 10) { newAction->setShortcut(QKeySequence("Ctrl+" + QString::number((i + 1) % 10))); } diff --git a/cockatrice/src/player.h b/cockatrice/src/player.h index 0a8cbdf95..d2ff34118 100644 --- a/cockatrice/src/player.h +++ b/cockatrice/src/player.h @@ -224,6 +224,8 @@ private slots: void actReveal(QAction *action); void refreshShortcuts(); + void initSayMenu(); + private: TabGame *game; QMenu *sbMenu, *countersMenu, *sayMenu, *createPredefinedTokenMenu, *mRevealLibrary, *mLendLibrary, *mRevealTopCard, @@ -310,7 +312,6 @@ private: QMap arrows; void rearrangeCounters(); - void initSayMenu(); void initContextualPlayersMenu(QMenu *menu); // void eventConnectionStateChanged(const Event_ConnectionStateChanged &event); diff --git a/cockatrice/src/settings/messagesettings.h b/cockatrice/src/settings/messagesettings.h index 94116058b..f41c6a4a0 100644 --- a/cockatrice/src/settings/messagesettings.h +++ b/cockatrice/src/settings/messagesettings.h @@ -15,6 +15,7 @@ public: void setCount(int count); void setMessageAt(int index, QString message); signals: + void messageMacrosChanged(); public slots: