From d88d694bf302f03c35365fc08a6121ac07cbc20c Mon Sep 17 00:00:00 2001 From: RickyRister Date: Mon, 21 Oct 2024 02:33:24 -0700 Subject: [PATCH] wire stuff up --- cockatrice/src/dialogs/dlg_settings.cpp | 8 ++++++++ cockatrice/src/dialogs/dlg_settings.h | 1 + cockatrice/src/main.cpp | 3 +++ 3 files changed, 12 insertions(+) diff --git a/cockatrice/src/dialogs/dlg_settings.cpp b/cockatrice/src/dialogs/dlg_settings.cpp index 491be0bf3..3809beec5 100644 --- a/cockatrice/src/dialogs/dlg_settings.cpp +++ b/cockatrice/src/dialogs/dlg_settings.cpp @@ -326,6 +326,8 @@ AppearanceSettingsPage::AppearanceSettingsPage() // Menu settings showShortcutsCheckBox.setChecked(settings.getShowShortcuts()); + connect(&showShortcutsCheckBox, &QCheckBox::QT_STATE_CHANGED, this, &AppearanceSettingsPage::showShortcutsChanged); + auto *menuGrid = new QGridLayout; menuGrid->addWidget(&showShortcutsCheckBox, 0, 0); @@ -426,6 +428,12 @@ void AppearanceSettingsPage::openThemeLocation() } } +void AppearanceSettingsPage::showShortcutsChanged(QT_STATE_CHANGED_T value) +{ + SettingsCache::instance().setShowShortcuts(value); + qApp->setAttribute(Qt::AA_DontShowShortcutsInContextMenus, value == 0); // 0 = unchecked +} + void AppearanceSettingsPage::retranslateUi() { themeGroupBox->setTitle(tr("Theme settings")); diff --git a/cockatrice/src/dialogs/dlg_settings.h b/cockatrice/src/dialogs/dlg_settings.h index 0622f5b77..32250fff5 100644 --- a/cockatrice/src/dialogs/dlg_settings.h +++ b/cockatrice/src/dialogs/dlg_settings.h @@ -83,6 +83,7 @@ class AppearanceSettingsPage : public AbstractSettingsPage private slots: void themeBoxChanged(int index); void openThemeLocation(); + void showShortcutsChanged(QT_STATE_CHANGED_T enabled); private: QLabel themeLabel; diff --git a/cockatrice/src/main.cpp b/cockatrice/src/main.cpp index 96d521d23..3b05850cb 100644 --- a/cockatrice/src/main.cpp +++ b/cockatrice/src/main.cpp @@ -180,6 +180,9 @@ int main(int argc, char *argv[]) ui.show(); qDebug("main(): ui.show() finished"); + // If enabled, force shortcuts to be shown in right-click menus regardless of system defaults + qApp->setAttribute(Qt::AA_DontShowShortcutsInContextMenus, !SettingsCache::instance().getShowShortcuts()); + #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) app.setAttribute(Qt::AA_UseHighDpiPixmaps); #endif