diff --git a/src/main/java/forge/gui/home/settings/CSubmenuPreferences.java b/src/main/java/forge/gui/home/settings/CSubmenuPreferences.java index 36fe8c1fdb0..3be3ec393e2 100644 --- a/src/main/java/forge/gui/home/settings/CSubmenuPreferences.java +++ b/src/main/java/forge/gui/home/settings/CSubmenuPreferences.java @@ -169,7 +169,9 @@ public enum CSubmenuPreferences implements ICDoc { view.getBtnReset().setCommand(new Command() { @Override public void execute() { - Singletons.getModel().getPreferences().reset(); + ForgePreferences prefs = Singletons.getModel().getPreferences(); + prefs.reset(); + prefs.save(); update(); } }); @@ -198,6 +200,7 @@ public enum CSubmenuPreferences implements ICDoc { view.getCbScaleLarger().setSelected(prefs.getPrefBoolean(FPref.UI_SCALE_LARGER)); view.getCbTextMana().setSelected(prefs.getPrefBoolean(FPref.UI_CARD_OVERLAY)); view.getCbEnableSounds().setSelected(prefs.getPrefBoolean(FPref.UI_ENABLE_SOUNDS)); + view.reloadShortcuts(); } private void updateSkinNames() { @@ -228,8 +231,7 @@ public enum CSubmenuPreferences implements ICDoc { view.getLblChooseSkin().setText("Please restart Forge (click here to close)."); view.getLblChooseSkin().setHoverable(true); view.getLblChooseSkin().setCommand(new Command() { @Override - public void execute() { RestartUtil.restartApplication(new Runnable() { - @Override public void run() { } }); } }); + public void execute() { RestartUtil.restartApplication(null); } }); prefs.setPref(FPref.UI_SKIN, name); prefs.save(); diff --git a/src/main/java/forge/gui/home/settings/VSubmenuPreferences.java b/src/main/java/forge/gui/home/settings/VSubmenuPreferences.java index e30f4568270..084902e503f 100644 --- a/src/main/java/forge/gui/home/settings/VSubmenuPreferences.java +++ b/src/main/java/forge/gui/home/settings/VSubmenuPreferences.java @@ -10,7 +10,9 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.swing.JCheckBox; import javax.swing.JLabel; @@ -39,6 +41,7 @@ import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FList; import forge.gui.toolbox.FScrollPane; import forge.gui.toolbox.FSkin; +import forge.properties.ForgePreferences.FPref; import forge.properties.ForgeProps; import forge.properties.NewConstants.Lang.OldGuiNewGame.NewGameText; @@ -87,6 +90,9 @@ public enum VSubmenuPreferences implements IVSubmenu { private final JCheckBox cbRandomizeArt = new OptionsCheckBox("Randomize Card Art"); private final JCheckBox cbEnableSounds = new OptionsCheckBox("Enable Sounds"); + private final Map shortcutFields = new HashMap(); + + /** * Constructor. */ @@ -165,7 +171,9 @@ public enum VSubmenuPreferences implements IVSubmenu { for (final Shortcut s : shortcuts) { pnlPrefs.add(new FLabel.Builder().text(s.getDescription()) .fontAlign(SwingConstants.RIGHT).build(), "w 50%!, h 22px!, gap 0 2% 0 1%"); - pnlPrefs.add(new KeyboardShortcutField(s), "w 25%!"); + KeyboardShortcutField field = new KeyboardShortcutField(s); + pnlPrefs.add(field, "w 25%!"); + shortcutFields.put(s.getPrefKey(), field); } // Reset button @@ -175,6 +183,12 @@ public enum VSubmenuPreferences implements IVSubmenu { scrContent.setBorder(null); } + public void reloadShortcuts() { + for (Map.Entry e : shortcutFields.entrySet()) { + e.getValue().reload(e.getKey()); + } + } + /* (non-Javadoc) * @see forge.view.home.IViewSubmenu#populate() */ @@ -280,7 +294,8 @@ public enum VSubmenuPreferences implements IVSubmenu { super(); this.setEditable(false); this.setFont(FSkin.getFont(14)); - this.setCodeString(Singletons.getModel().getPreferences().getPref(shortcut0.getPrefKey())); + final FPref prefKey = shortcut0.getPrefKey(); + reload(prefKey); this.addKeyListener(new KeyAdapter() { @Override @@ -297,8 +312,7 @@ public enum VSubmenuPreferences implements IVSubmenu { @Override public void focusLost(final FocusEvent evt) { - Singletons.getModel().getPreferences().setPref( - shortcut0.getPrefKey(), getCodeString()); + Singletons.getModel().getPreferences().setPref(prefKey, getCodeString()); Singletons.getModel().getPreferences().save(); shortcut0.attach(); KeyboardShortcutField.this.setBackground(Color.white); @@ -306,6 +320,10 @@ public enum VSubmenuPreferences implements IVSubmenu { }); } + public void reload(FPref prefKey) { + this.setCodeString(Singletons.getModel().getPreferences().getPref(prefKey)); + } + /** * Gets the code string. * diff --git a/src/main/java/forge/properties/ForgePreferences.java b/src/main/java/forge/properties/ForgePreferences.java index e63996b6afc..71898429bac 100644 --- a/src/main/java/forge/properties/ForgePreferences.java +++ b/src/main/java/forge/properties/ForgePreferences.java @@ -185,6 +185,8 @@ public class ForgePreferences { if (split.length == 2) { this.setPref(split[0], split[1]); + } else if (split.length == 1 && line.endsWith("=")) { + this.setPref(split[0], ""); } } } catch (FileNotFoundException ex) {