From 2c54c811d5200d866032a5047d4ffa11dfdd37eb Mon Sep 17 00:00:00 2001 From: spr Date: Thu, 18 Jul 2013 16:36:40 +0000 Subject: [PATCH] - Fix: theme combo displays "Dark Ascension" when current theme is "Default". [#716] --- .../home/settings/CSubmenuPreferences.java | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/main/java/forge/gui/home/settings/CSubmenuPreferences.java b/src/main/java/forge/gui/home/settings/CSubmenuPreferences.java index 9e03e109c79..36090d1270e 100644 --- a/src/main/java/forge/gui/home/settings/CSubmenuPreferences.java +++ b/src/main/java/forge/gui/home/settings/CSubmenuPreferences.java @@ -25,6 +25,7 @@ import forge.gui.toolbox.FSkin; import forge.properties.ForgePreferences; import forge.properties.ForgePreferences.FPref; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -216,11 +217,26 @@ public enum CSubmenuPreferences implements ICDoc { private void initializeSkinsComboBox() { FPref userSetting = FPref.UI_SKIN; - FComboBoxPanel panel = this.view.getSkinsComboBoxPanel(); - JComboBox comboBox = createComboBox(FSkin.getSkinNamesArray(), userSetting); + FComboBoxPanel panel = this.view.getSkinsComboBoxPanel(); + String[] installedSkins = getSortedListOfInstalledSkins(); + validatePreferredSkinName(installedSkins); + JComboBox comboBox = createComboBox(installedSkins, userSetting); String selectedItem = this.prefs.getPref(userSetting); panel.setComboBox(comboBox, selectedItem); - } + } + + private String[] getSortedListOfInstalledSkins() { + String[] skins = FSkin.getSkinNamesArray(); + java.util.Arrays.sort(skins); + return skins; + } + + private void validatePreferredSkinName(String[] installedSkins) { + String preferredSkin = this.prefs.getPref(FPref.UI_SKIN); + if (!Arrays.asList(installedSkins).contains(preferredSkin)) { + this.prefs.setPref(FPref.UI_SKIN, "Default"); + } + } private JComboBox createComboBox(E[] items, final ForgePreferences.FPref setting) { final JComboBox comboBox = new JComboBox(items);