diff --git a/forge-gui-desktop/src/main/java/forge/gui/framework/SDisplayUtil.java b/forge-gui-desktop/src/main/java/forge/gui/framework/SDisplayUtil.java index 726ff7a84d3..7d78b5eeeaa 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/framework/SDisplayUtil.java +++ b/forge-gui-desktop/src/main/java/forge/gui/framework/SDisplayUtil.java @@ -18,7 +18,6 @@ import javax.swing.JPanel; import javax.swing.SwingUtilities; import forge.FThreads; -import forge.toolbox.FButton; import forge.view.FFrame; /** @@ -109,17 +108,12 @@ public class SDisplayUtil { dc.setSelected(tab0); } // set focus back to previous owner, if any - // if (null != c && c instanceof FButton) { //pfps UGLY but maybe necessary (probably not) if (null != c) { c.requestFocusInWindow(); } } }; - if ( FThreads.isGuiThread() ) { //pfps run this now whether in EDT or not so that it doesn't clobber later stuff - FThreads.invokeInEdtNowOrLater(showTabRoutine); - } else { - FThreads.invokeInEdtAndWait(showTabRoutine); - } + FThreads.invokeInEdtLater(showTabRoutine); } public static GraphicsDevice getGraphicsDevice(final Point point) { 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 9f23081db88..5dc54998981 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 @@ -118,6 +118,7 @@ public enum CSubmenuPreferences implements ICDoc { lstControls.add(Pair.of(view.getCbEscapeEndsTurn(), FPref.UI_ALLOW_ESC_TO_END_TURN)); lstControls.add(Pair.of(view.getCbDetailedPaymentDesc(), FPref.UI_DETAILED_SPELLDESC_IN_PROMPT)); lstControls.add(Pair.of(view.getCbPreselectPrevAbOrder(), FPref.UI_PRESELECT_PREVIOUS_ABILITY_ORDER)); + lstControls.add(Pair.of(view.getCbShowStormCount(), FPref.UI_SHOW_STORM_COUNT_IN_PROMPT)); 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 7f7d06edf0d..7a0c886d159 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 @@ -89,6 +89,7 @@ public enum VSubmenuPreferences implements IVSubmenu { private final JCheckBox cbTokensInSeparateRow = new OptionsCheckBox("Display Tokens in a Separate Row"); private final JCheckBox cbStackCreatures = new OptionsCheckBox("Stack Creatures"); private final JCheckBox cbFilterLandsByColorId = new OptionsCheckBox("Filter Lands by Color in Activated Abilities"); + private final JCheckBox cbShowStormCount = new OptionsCheckBox("Show Storm Count in Prompt Pane"); private final Map shortcutFields = new HashMap<>(); @@ -173,6 +174,9 @@ public enum VSubmenuPreferences implements IVSubmenu { pnlPrefs.add(cbDetailedPaymentDesc, regularConstraints); pnlPrefs.add(new NoteLabel("When enabled, detailed spell/ability descriptions are shown when choosing targets and paying costs."), regularConstraints); + pnlPrefs.add(cbShowStormCount, regularConstraints); + pnlPrefs.add(new NoteLabel("When enabled, displays the current storm count in the prompt pane."), regularConstraints); + pnlPrefs.add(cbPreselectPrevAbOrder, regularConstraints); pnlPrefs.add(new NoteLabel("When enabled, preselects the last defined simultaneous ability order in the ordering dialog."), regularConstraints); @@ -635,6 +639,10 @@ public enum VSubmenuPreferences implements IVSubmenu { return cbDetailedPaymentDesc; } + public final JCheckBox getCbShowStormCount() { + return cbShowStormCount; + } + public final JCheckBox getCbPreselectPrevAbOrder() { return cbPreselectPrevAbOrder; } diff --git a/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java b/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java index cd98802218d..c112bcaea9b 100644 --- a/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java +++ b/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java @@ -122,6 +122,10 @@ public class SettingsPage extends TabPage { "Spell Description in Payment Prompt", "When enabled, detailed spell/ability descriptions are shown when choosing targets and paying costs."), 1); + lstSettings.addItem(new BooleanSetting(FPref.UI_SHOW_STORM_COUNT_IN_PROMPT, + "Show Storm Count in Prompt Panel", + "When enabled, displays the current storm count in the prompt panel."), + 1); lstSettings.addItem(new BooleanSetting(FPref.UI_PRESELECT_PREVIOUS_ABILITY_ORDER, "Preselect Last Order of Abilities", "When enabled, preselects the last defined simultaneous ability order in the ordering dialog."), diff --git a/forge-gui/src/main/java/forge/match/input/InputBase.java b/forge-gui/src/main/java/forge/match/input/InputBase.java index 4a46f79e7c5..fb412ac3979 100644 --- a/forge-gui/src/main/java/forge/match/input/InputBase.java +++ b/forge-gui/src/main/java/forge/match/input/InputBase.java @@ -27,7 +27,9 @@ import forge.game.player.Player; import forge.game.player.PlayerView; import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbilityView; +import forge.model.FModel; import forge.player.PlayerControllerHuman; +import forge.properties.ForgePreferences; import forge.util.ITriggerEvent; /** @@ -135,9 +137,15 @@ public abstract class InputBase implements java.io.Serializable, Input { sb.append("Phase: ").append(ph.getPhase().nameForUi).append("\n"); sb.append("Stack: "); if (!game.getStack().isEmpty()) { - sb.append(game.getStack().size()).append(" to Resolve."); + sb.append(game.getStack().size()).append(" to Resolve.\n"); } else { - sb.append("Empty"); + sb.append("Empty\n"); + } + if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_SHOW_STORM_COUNT_IN_PROMPT)) { + int stormCount = game.getView().getStormCount(); + if (stormCount > 0) { + sb.append("Storm Count: ").append(stormCount).append("\n"); + } } return sb.toString(); } diff --git a/forge-gui/src/main/java/forge/properties/ForgePreferences.java b/forge-gui/src/main/java/forge/properties/ForgePreferences.java index 3d0fb8e3854..e51bec3e366 100644 --- a/forge-gui/src/main/java/forge/properties/ForgePreferences.java +++ b/forge-gui/src/main/java/forge/properties/ForgePreferences.java @@ -87,6 +87,7 @@ public class ForgePreferences extends PreferencesStore { UI_ALLOW_ESC_TO_END_TURN ("false"), UI_PRESELECT_PREVIOUS_ABILITY_ORDER ("false"), UI_AUTO_YIELD_MODE (ForgeConstants.AUTO_YIELD_PER_ABILITY), + UI_SHOW_STORM_COUNT_IN_PROMPT ("false"), UI_FOR_TOUCHSCREN("false"),