diff --git a/cockatrice/src/dialogs/dlg_settings.cpp b/cockatrice/src/dialogs/dlg_settings.cpp index ca23619a3..491be0bf3 100644 --- a/cockatrice/src/dialogs/dlg_settings.cpp +++ b/cockatrice/src/dialogs/dlg_settings.cpp @@ -324,6 +324,14 @@ AppearanceSettingsPage::AppearanceSettingsPage() themeGroupBox = new QGroupBox; themeGroupBox->setLayout(themeGrid); + // Menu settings + showShortcutsCheckBox.setChecked(settings.getShowShortcuts()); + auto *menuGrid = new QGridLayout; + menuGrid->addWidget(&showShortcutsCheckBox, 0, 0); + + menuGroupBox = new QGroupBox; + menuGroupBox->setLayout(menuGrid); + // Card rendering displayCardNamesCheckBox.setChecked(settings.getDisplayCardNames()); connect(&displayCardNamesCheckBox, &QCheckBox::QT_STATE_CHANGED, &settings, &SettingsCache::setDisplayCardNames); @@ -389,6 +397,7 @@ AppearanceSettingsPage::AppearanceSettingsPage() // putting it all together auto *mainLayout = new QVBoxLayout; mainLayout->addWidget(themeGroupBox); + mainLayout->addWidget(menuGroupBox); mainLayout->addWidget(cardsGroupBox); mainLayout->addWidget(handGroupBox); mainLayout->addWidget(tableGroupBox); @@ -423,6 +432,9 @@ void AppearanceSettingsPage::retranslateUi() themeLabel.setText(tr("Current theme:")); openThemeButton.setText(tr("Open themes folder")); + menuGroupBox->setTitle(tr("Menu settings")); + showShortcutsCheckBox.setText(tr("Show keyboard shortcuts in right-click menus")); + cardsGroupBox->setTitle(tr("Card rendering")); displayCardNamesCheckBox.setText(tr("Display card names on cards having a picture")); cardScalingCheckBox.setText(tr("Scale cards on mouse over")); diff --git a/cockatrice/src/dialogs/dlg_settings.h b/cockatrice/src/dialogs/dlg_settings.h index fdd114274..0622f5b77 100644 --- a/cockatrice/src/dialogs/dlg_settings.h +++ b/cockatrice/src/dialogs/dlg_settings.h @@ -90,6 +90,7 @@ private: QPushButton openThemeButton; QLabel minPlayersForMultiColumnLayoutLabel; QLabel maxFontSizeForCardsLabel; + QCheckBox showShortcutsCheckBox; QCheckBox displayCardNamesCheckBox; QCheckBox cardScalingCheckBox; QLabel verticalCardOverlapPercentLabel; @@ -98,6 +99,7 @@ private: QCheckBox leftJustifiedHandCheckBox; QCheckBox invertVerticalCoordinateCheckBox; QGroupBox *themeGroupBox; + QGroupBox *menuGroupBox; QGroupBox *cardsGroupBox; QGroupBox *handGroupBox; QGroupBox *tableGroupBox; diff --git a/cockatrice/src/settings/cache_settings.cpp b/cockatrice/src/settings/cache_settings.cpp index 3a75af782..afb5a6450 100644 --- a/cockatrice/src/settings/cache_settings.cpp +++ b/cockatrice/src/settings/cache_settings.cpp @@ -239,6 +239,7 @@ SettingsCache::SettingsCache() knownMissingFeatures = settings->value("interface/knownmissingfeatures", "").toString(); useTearOffMenus = settings->value("interface/usetearoffmenus", true).toBool(); + showShortcuts = settings->value("menu/showshortcuts", true).toBool(); displayCardNames = settings->value("cards/displaycardnames", true).toBool(); horizontalHand = settings->value("hand/horizontal", true).toBool(); invertVerticalCoordinate = settings->value("table/invert_vertical", false).toBool(); @@ -505,6 +506,12 @@ void SettingsCache::setTabGameSplitterSizes(const QByteArray &_tabGameSplitterSi settings->setValue("interface/tabgame_splittersizes", tabGameSplitterSizes); } +void SettingsCache::setShowShortcuts(QT_STATE_CHANGED_T _showShortcuts) +{ + showShortcuts = static_cast(_showShortcuts); + settings->setValue("menu/ShowShortcuts", showShortcuts); +} + void SettingsCache::setDisplayCardNames(QT_STATE_CHANGED_T _displayCardNames) { displayCardNames = static_cast(_displayCardNames); diff --git a/cockatrice/src/settings/cache_settings.h b/cockatrice/src/settings/cache_settings.h index 77e826412..54740b69a 100644 --- a/cockatrice/src/settings/cache_settings.h +++ b/cockatrice/src/settings/cache_settings.h @@ -97,6 +97,7 @@ private: int startingHandSize; bool annotateTokens; QByteArray tabGameSplitterSizes; + bool showShortcuts; bool displayCardNames; bool horizontalHand; bool invertVerticalCoordinate; @@ -288,6 +289,10 @@ public: { return tabGameSplitterSizes; } + bool getShowShortcuts() const + { + return showShortcuts; + } bool getDisplayCardNames() const { return displayCardNames; @@ -560,6 +565,7 @@ public slots: void setStartingHandSize(int _startingHandSize); void setAnnotateTokens(QT_STATE_CHANGED_T _annotateTokens); void setTabGameSplitterSizes(const QByteArray &_tabGameSplitterSizes); + void setShowShortcuts(QT_STATE_CHANGED_T _showShortcuts); void setDisplayCardNames(QT_STATE_CHANGED_T _displayCardNames); void setHorizontalHand(QT_STATE_CHANGED_T _horizontalHand); void setInvertVerticalCoordinate(QT_STATE_CHANGED_T _invertVerticalCoordinate); diff --git a/dbconverter/src/mocks.cpp b/dbconverter/src/mocks.cpp index e13db95ff..66ec21517 100644 --- a/dbconverter/src/mocks.cpp +++ b/dbconverter/src/mocks.cpp @@ -148,6 +148,9 @@ void SettingsCache::setAnnotateTokens(QT_STATE_CHANGED_T /* _annotateTokens */) void SettingsCache::setTabGameSplitterSizes(const QByteArray & /* _tabGameSplitterSizes */) { } +void SettingsCache::setShowShortcuts(QT_STATE_CHANGED_T /* _showShortcuts */) +{ +} void SettingsCache::setDisplayCardNames(QT_STATE_CHANGED_T /* _displayCardNames */) { } diff --git a/tests/carddatabase/mocks.cpp b/tests/carddatabase/mocks.cpp index 0eed998b3..c16448f39 100644 --- a/tests/carddatabase/mocks.cpp +++ b/tests/carddatabase/mocks.cpp @@ -152,6 +152,9 @@ void SettingsCache::setAnnotateTokens(QT_STATE_CHANGED_T /* _annotateTokens */) void SettingsCache::setTabGameSplitterSizes(const QByteArray & /* _tabGameSplitterSizes */) { } +void SettingsCache::setShowShortcuts(QT_STATE_CHANGED_T /* _showShortcuts */) +{ +} void SettingsCache::setDisplayCardNames(QT_STATE_CHANGED_T /* _displayCardNames */) { }