From 9a75816ef249024b046e71288f49bde0233b0ffd Mon Sep 17 00:00:00 2001 From: Agetian Date: Fri, 6 Jan 2017 19:52:42 +0000 Subject: [PATCH] - Adding a preference to control whether the Escape key can be used in desktop Forge as an alternative "end turn" shortcut (for players who prefer the old behavior). It is disabled by default. --- .../forge/screens/home/settings/CSubmenuPreferences.java | 1 + .../forge/screens/home/settings/VSubmenuPreferences.java | 8 ++++++++ .../src/main/java/forge/screens/match/views/VPrompt.java | 2 +- .../src/main/java/forge/properties/ForgePreferences.java | 3 ++- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java index 58c56acf9c6..f844cd6fde9 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java @@ -114,6 +114,7 @@ public enum CSubmenuPreferences implements ICDoc { lstControls.add(Pair.of(view.getCbTokensInSeparateRow(), FPref.UI_TOKENS_IN_SEPARATE_ROW)); lstControls.add(Pair.of(view.getCbStackCreatures(), FPref.UI_STACK_CREATURES)); lstControls.add(Pair.of(view.getCbManaLostPrompt(), FPref.UI_MANA_LOST_PROMPT)); + lstControls.add(Pair.of(view.getCbEscapeEndsTurn(), FPref.UI_ALLOW_ESC_TO_END_TURN)); lstControls.add(Pair.of(view.getCbFilterLandsByColorId(), FPref.UI_FILTER_LANDS_BY_COLOR_IDENTITY)); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java index c12b819e4dc..b97e97da3b3 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java @@ -80,6 +80,7 @@ public enum VSubmenuPreferences implements IVSubmenu { private final JCheckBox cbPromptFreeBlocks = new OptionsCheckBox("Free Block Handling"); private final JCheckBox cbPauseWhileMinimized = new OptionsCheckBox("Pause While Minimized"); private final JCheckBox cbCompactPrompt = new OptionsCheckBox("Compact Prompt"); + private final JCheckBox cbEscapeEndsTurn = new OptionsCheckBox("Use Escape Key to End Turn"); private final JCheckBox cbHideReminderText = new OptionsCheckBox("Hide Reminder Text"); private final JCheckBox cbOpenPacksIndiv = new OptionsCheckBox("Open Packs Individually"); private final JCheckBox cbTokensInSeparateRow = new OptionsCheckBox("Display Tokens in a Separate Row"); @@ -162,6 +163,9 @@ public enum VSubmenuPreferences implements IVSubmenu { pnlPrefs.add(cbPauseWhileMinimized, regularConstraints); pnlPrefs.add(new NoteLabel("When enabled, Forge pauses when minimized (primarily for AI vs AI)."), regularConstraints); + pnlPrefs.add(cbEscapeEndsTurn, regularConstraints); + pnlPrefs.add(new NoteLabel("When enabled, Escape key functions as an alternative shortcut to end the current turn."), regularConstraints); + // Deck building options pnlPrefs.add(new SectionLabel("Random Deck Generation"), sectionConstraints); @@ -578,6 +582,10 @@ public enum VSubmenuPreferences implements IVSubmenu { return cbCompactPrompt; } + public final JCheckBox getCbEscapeEndsTurn() { + return cbEscapeEndsTurn; + } + public final JCheckBox getCbHideReminderText() { return cbHideReminderText; } diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/views/VPrompt.java b/forge-gui-desktop/src/main/java/forge/screens/match/views/VPrompt.java index d30030bf10a..ef63a8634e8 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/views/VPrompt.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/views/VPrompt.java @@ -58,7 +58,7 @@ public class VPrompt implements IVDoc { public void keyPressed(final KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { if (btnCancel.isEnabled()) { - if (!btnCancel.getText().equals("End Turn")) { + if (FModel.getPreferences().getPrefBoolean(FPref.UI_ALLOW_ESC_TO_END_TURN) || !btnCancel.getText().equals("End Turn")) { btnCancel.doClick(); } } diff --git a/forge-gui/src/main/java/forge/properties/ForgePreferences.java b/forge-gui/src/main/java/forge/properties/ForgePreferences.java index 81fbd60ca69..ec0f8f598c7 100644 --- a/forge-gui/src/main/java/forge/properties/ForgePreferences.java +++ b/forge-gui/src/main/java/forge/properties/ForgePreferences.java @@ -82,6 +82,7 @@ public class ForgePreferences extends PreferencesStore { UI_TOKENS_IN_SEPARATE_ROW("false"), // Display tokens in their own battlefield row. UI_DISPLAY_CURRENT_COLORS("Never"), UI_FILTER_LANDS_BY_COLOR_IDENTITY("true"), + UI_ALLOW_ESC_TO_END_TURN ("false"), UI_FOR_TOUCHSCREN("false"), @@ -168,7 +169,7 @@ public class ForgePreferences extends PreferencesStore { SHORTCUT_SHOWTARGETING ("84"), SHORTCUT_AUTOYIELD_ALWAYS_YES ("89"), SHORTCUT_AUTOYIELD_ALWAYS_NO ("78"); - + private final String strDefaultVal; private FPref(final String s0) {