GUI, preferences: fixed that auto-target settings doesn't save, removed outdated code (phase stops settings are global now, not per game);

This commit is contained in:
Oleg Agafonov 2024-08-05 03:18:20 +04:00
parent 76db1d3e65
commit 546fc1ed9a

View file

@ -334,8 +334,6 @@ public class PreferencesDialog extends javax.swing.JDialog {
private static final Map<String, String> CACHE = new HashMap<>(); private static final Map<String, String> CACHE = new HashMap<>();
private static final Boolean UPDATE_CACHE_POLICY = Boolean.TRUE; // TODO: delete
public static final String OPEN_CONNECTION_TAB = "Open-Connection-Tab"; public static final String OPEN_CONNECTION_TAB = "Open-Connection-Tab";
public static final String OPEN_PHASES_TAB = "Open-Phases-Tab"; public static final String OPEN_PHASES_TAB = "Open-Phases-Tab";
@ -2843,40 +2841,36 @@ public class PreferencesDialog extends javax.swing.JDialog {
Preferences prefs = MageFrame.getPreferences(); Preferences prefs = MageFrame.getPreferences();
// main // main
save(prefs, dialog.tooltipDelay, KEY_SHOW_TOOLTIPS_DELAY, UPDATE_CACHE_POLICY); save(prefs, dialog.tooltipDelay, KEY_SHOW_TOOLTIPS_DELAY);
save(prefs, dialog.showCardName, KEY_SHOW_CARD_NAMES, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.showCardName, KEY_SHOW_CARD_NAMES, "true", "false");
save(prefs, dialog.showFullImagePath, KEY_SHOW_FULL_IMAGE_PATH, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.showFullImagePath, KEY_SHOW_FULL_IMAGE_PATH, "true", "false");
save(prefs, dialog.nonLandPermanentsInOnePile, KEY_PERMANENTS_IN_ONE_PILE, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.nonLandPermanentsInOnePile, KEY_PERMANENTS_IN_ONE_PILE, "true", "false");
save(prefs, dialog.showPlayerNamesPermanently, KEY_SHOW_PLAYER_NAMES_PERMANENTLY, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.showPlayerNamesPermanently, KEY_SHOW_PLAYER_NAMES_PERMANENTLY, "true", "false");
save(prefs, dialog.displayLifeOnAvatar, KEY_DISPLAY_LIVE_ON_AVATAR, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.displayLifeOnAvatar, KEY_DISPLAY_LIVE_ON_AVATAR, "true", "false");
save(prefs, dialog.showAbilityPickerForced, KEY_SHOW_ABILITY_PICKER_FORCED, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.showAbilityPickerForced, KEY_SHOW_ABILITY_PICKER_FORCED, "true", "false");
save(prefs, dialog.cbAllowRequestToShowHandCards, KEY_GAME_ALLOW_REQUEST_SHOW_HAND_CARDS, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbAllowRequestToShowHandCards, KEY_GAME_ALLOW_REQUEST_SHOW_HAND_CARDS, "true", "false");
save(prefs, dialog.cbConfirmEmptyManaPool, KEY_GAME_CONFIRM_EMPTY_MANA_POOL, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbConfirmEmptyManaPool, KEY_GAME_CONFIRM_EMPTY_MANA_POOL, "true", "false");
save(prefs, dialog.cbAskMoveToGraveOrder, KEY_GAME_ASK_MOVE_TO_GRAVE_ORDER, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbAskMoveToGraveOrder, KEY_GAME_ASK_MOVE_TO_GRAVE_ORDER, "true", "false");
save(prefs, dialog.cbGameLogShowTurnInfo, KEY_GAME_LOG_SHOW_TURN_INFO, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbGameLogShowTurnInfo, KEY_GAME_LOG_SHOW_TURN_INFO, "true", "false");
save(prefs, dialog.cbGameLogAutoSave, KEY_GAME_LOG_AUTO_SAVE, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbGameLogAutoSave, KEY_GAME_LOG_AUTO_SAVE, "true", "false");
save(prefs, dialog.cbDraftLogAutoSave, KEY_DRAFT_LOG_AUTO_SAVE, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbDraftLogAutoSave, KEY_DRAFT_LOG_AUTO_SAVE, "true", "false");
save(prefs, dialog.cbLimitedDeckAutoSave, KEY_LIMITED_DECK_AUTO_SAVE, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbLimitedDeckAutoSave, KEY_LIMITED_DECK_AUTO_SAVE, "true", "false");
save(prefs, dialog.cbGameJsonLogAutoSave, KEY_JSON_GAME_LOG_AUTO_SAVE, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbGameJsonLogAutoSave, KEY_JSON_GAME_LOG_AUTO_SAVE, "true", "false");
String paramName = KEY_BATTLEFIELD_FEEDBACK_COLORIZING_MODE; String paramName = KEY_BATTLEFIELD_FEEDBACK_COLORIZING_MODE;
int paramValue = dialog.cbBattlefieldFeedbackColorizingMode.getSelectedIndex(); int paramValue = dialog.cbBattlefieldFeedbackColorizingMode.getSelectedIndex();
int paramDefault = BATTLEFIELD_FEEDBACK_COLORIZING_MODE_ENABLE_BY_MULTICOLOR; int paramDefault = BATTLEFIELD_FEEDBACK_COLORIZING_MODE_ENABLE_BY_MULTICOLOR;
if (getCachedValue(paramName, paramDefault) != paramValue) { if (getCachedValue(paramName, paramDefault) != paramValue) {
prefs.putInt(paramName, paramValue); prefs.putInt(paramName, paramValue);
if (UPDATE_CACHE_POLICY) { updateCache(paramName, Integer.toString(paramValue));
updateCache(paramName, Integer.toString(paramValue));
}
} }
String paramNameAutoTarget = KEY_AUTO_TARGET_LEVEL; paramName = KEY_AUTO_TARGET_LEVEL;
int paramValueAutoTarger = dialog.cbTargetAutoChooseLevel.getSelectedIndex(); paramValue = dialog.cbTargetAutoChooseLevel.getSelectedIndex();
int paramDefaultAutoTarget = AUTO_TARGET_NON_FEEL_BAD; paramDefault = AUTO_TARGET_NON_FEEL_BAD;
if (getCachedValue(paramNameAutoTarget, paramDefault) != paramValueAutoTarger) { if (getCachedValue(paramName, paramDefault) != paramValue) {
prefs.putInt(paramNameAutoTarget, paramValueAutoTarger); prefs.putInt(paramName, paramValue);
if (UPDATE_CACHE_POLICY) { updateCache(paramName, Integer.toString(paramValue));
updateCache(paramNameAutoTarget, Integer.toString(paramValueAutoTarger));
}
} }
saveGUISize(false, false); saveGUISize(false, false);
@ -2898,42 +2892,42 @@ public class PreferencesDialog extends javax.swing.JDialog {
save(prefs, dialog.checkBoxMain2Others, MAIN_TWO_OTHERS); save(prefs, dialog.checkBoxMain2Others, MAIN_TWO_OTHERS);
save(prefs, dialog.checkBoxEndTurnOthers, END_OF_TURN_OTHERS); save(prefs, dialog.checkBoxEndTurnOthers, END_OF_TURN_OTHERS);
save(prefs, dialog.cbStopAttack, KEY_STOP_ATTACK, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbStopAttack, KEY_STOP_ATTACK, "true", "false");
save(prefs, dialog.cbStopBlockWithAny, KEY_STOP_BLOCK_WITH_ANY, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbStopBlockWithAny, KEY_STOP_BLOCK_WITH_ANY, "true", "false");
save(prefs, dialog.cbStopBlockWithZero, KEY_STOP_BLOCK_WITH_ZERO, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbStopBlockWithZero, KEY_STOP_BLOCK_WITH_ZERO, "true", "false");
save(prefs, dialog.cbStopOnAllMain, KEY_STOP_ALL_MAIN_PHASES, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbStopOnAllMain, KEY_STOP_ALL_MAIN_PHASES, "true", "false");
save(prefs, dialog.cbStopOnAllEnd, KEY_STOP_ALL_END_PHASES, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbStopOnAllEnd, KEY_STOP_ALL_END_PHASES, "true", "false");
save(prefs, dialog.cbStopOnNewStackObjects, KEY_STOP_NEW_STACK_OBJECTS, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbStopOnNewStackObjects, KEY_STOP_NEW_STACK_OBJECTS, "true", "false");
save(prefs, dialog.cbPassPriorityCast, KEY_PASS_PRIORITY_CAST, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbPassPriorityCast, KEY_PASS_PRIORITY_CAST, "true", "false");
save(prefs, dialog.cbPassPriorityActivation, KEY_PASS_PRIORITY_ACTIVATION, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbPassPriorityActivation, KEY_PASS_PRIORITY_ACTIVATION, "true", "false");
save(prefs, dialog.cbAutoOrderTrigger, KEY_AUTO_ORDER_TRIGGER, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbAutoOrderTrigger, KEY_AUTO_ORDER_TRIGGER, "true", "false");
save(prefs, dialog.cbUseSameSettingsForReplacementEffect, KEY_USE_SAME_SETTINGS_FOR_SAME_REPLACEMENT_EFFECTS, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbUseSameSettingsForReplacementEffect, KEY_USE_SAME_SETTINGS_FOR_SAME_REPLACEMENT_EFFECTS, "true", "false");
// images // images
save(prefs, dialog.cbUseDefaultImageFolder, KEY_CARD_IMAGES_USE_DEFAULT, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbUseDefaultImageFolder, KEY_CARD_IMAGES_USE_DEFAULT, "true", "false");
saveImagesPath(prefs); saveImagesPath(prefs);
save(prefs, dialog.cbSaveToZipFiles, KEY_CARD_IMAGES_SAVE_TO_ZIP, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbSaveToZipFiles, KEY_CARD_IMAGES_SAVE_TO_ZIP, "true", "false");
save(prefs, dialog.cbNumberOfDownloadThreads, KEY_CARD_IMAGES_THREADS); save(prefs, dialog.cbNumberOfDownloadThreads, KEY_CARD_IMAGES_THREADS);
save(prefs, dialog.cbPreferredImageLanguage, KEY_CARD_IMAGES_PREF_LANGUAGE); save(prefs, dialog.cbPreferredImageLanguage, KEY_CARD_IMAGES_PREF_LANGUAGE);
save(prefs, dialog.cbUseDefaultBackground, KEY_BACKGROUND_IMAGE_DEFAULT, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbUseDefaultBackground, KEY_BACKGROUND_IMAGE_DEFAULT, "true", "false");
save(prefs, dialog.cbUseDefaultBattleImage, KEY_BATTLEFIELD_IMAGE_DEFAULT, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbUseDefaultBattleImage, KEY_BATTLEFIELD_IMAGE_DEFAULT, "true", "false");
save(prefs, dialog.cbUseRandomBattleImage, KEY_BATTLEFIELD_IMAGE_RANDOM, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbUseRandomBattleImage, KEY_BATTLEFIELD_IMAGE_RANDOM, "true", "false");
// rendering // rendering
save(prefs, dialog.cbCardRenderImageFallback, KEY_CARD_RENDERING_IMAGE_MODE, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbCardRenderImageFallback, KEY_CARD_RENDERING_IMAGE_MODE, "true", "false");
save(prefs, dialog.cbCardRenderIconsForAbilities, KEY_CARD_RENDERING_ICONS_FOR_ABILITIES, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbCardRenderIconsForAbilities, KEY_CARD_RENDERING_ICONS_FOR_ABILITIES, "true", "false");
save(prefs, dialog.cbCardRenderIconsForPlayable, KEY_CARD_RENDERING_ICONS_FOR_PLAYABLE, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbCardRenderIconsForPlayable, KEY_CARD_RENDERING_ICONS_FOR_PLAYABLE, "true", "false");
save(prefs, dialog.cbCardRenderHideSetSymbol, KEY_CARD_RENDERING_SET_SYMBOL, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbCardRenderHideSetSymbol, KEY_CARD_RENDERING_SET_SYMBOL, "true", "false");
save(prefs, dialog.cbCardRenderShowReminderText, KEY_CARD_RENDERING_REMINDER_TEXT, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbCardRenderShowReminderText, KEY_CARD_RENDERING_REMINDER_TEXT, "true", "false");
save(prefs, dialog.cbCardRenderShowAbilityTextOverlay, KEY_CARD_RENDERING_ABILITY_TEXT_OVERLAY, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbCardRenderShowAbilityTextOverlay, KEY_CARD_RENDERING_ABILITY_TEXT_OVERLAY, "true", "false");
// sounds // sounds
save(prefs, dialog.cbEnableGameSounds, KEY_SOUNDS_GAME_ON, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbEnableGameSounds, KEY_SOUNDS_GAME_ON, "true", "false");
save(prefs, dialog.cbEnableDraftSounds, KEY_SOUNDS_DRAFT_ON, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbEnableDraftSounds, KEY_SOUNDS_DRAFT_ON, "true", "false");
save(prefs, dialog.cbEnableSkipButtonsSounds, KEY_SOUNDS_SKIP_BUTTONS_ON, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbEnableSkipButtonsSounds, KEY_SOUNDS_SKIP_BUTTONS_ON, "true", "false");
save(prefs, dialog.cbEnableOtherSounds, KEY_SOUNDS_OTHER_ON, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbEnableOtherSounds, KEY_SOUNDS_OTHER_ON, "true", "false");
save(prefs, dialog.cbEnableBattlefieldBGM, KEY_SOUNDS_MATCH_MUSIC_ON, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.cbEnableBattlefieldBGM, KEY_SOUNDS_MATCH_MUSIC_ON, "true", "false");
saveSoundPath(prefs); saveSoundPath(prefs);
if (prefs.get(KEY_SOUNDS_MATCH_MUSIC_ON, SOUNDS_MATCH_MUSIC_ENABLE_BY_DEFAULT).equals("true")) { if (prefs.get(KEY_SOUNDS_MATCH_MUSIC_ON, SOUNDS_MATCH_MUSIC_ENABLE_BY_DEFAULT).equals("true")) {
if (MageFrame.isGameActive()) { if (MageFrame.isGameActive()) {
@ -2948,7 +2942,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
save(prefs, dialog.txtProxyServer, KEY_PROXY_ADDRESS); save(prefs, dialog.txtProxyServer, KEY_PROXY_ADDRESS);
save(prefs, dialog.txtProxyPort, KEY_PROXY_PORT); save(prefs, dialog.txtProxyPort, KEY_PROXY_PORT);
save(prefs, dialog.txtProxyUserName, KEY_PROXY_USERNAME); save(prefs, dialog.txtProxyUserName, KEY_PROXY_USERNAME);
save(prefs, dialog.rememberPswd, KEY_PROXY_REMEMBER, "true", "false", UPDATE_CACHE_POLICY); save(prefs, dialog.rememberPswd, KEY_PROXY_REMEMBER, "true", "false");
if (dialog.rememberPswd.isSelected()) { if (dialog.rememberPswd.isSelected()) {
char[] input = txtPasswordField.getPassword(); char[] input = txtPasswordField.getPassword();
prefs.put(KEY_PROXY_PSWD, new String(input)); prefs.put(KEY_PROXY_PSWD, new String(input));
@ -3007,7 +3001,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
PreferencesDialog dialog = PreferencesDialog.getInstance(); PreferencesDialog dialog = PreferencesDialog.getInstance();
Preferences prefs = MageFrame.getPreferences(); Preferences prefs = MageFrame.getPreferences();
dialog.sizeSettings.values().forEach(setting -> { dialog.sizeSettings.values().forEach(setting -> {
save(prefs, setting.slider, setting.key, UPDATE_CACHE_POLICY); save(prefs, setting.slider, setting.key);
}); });
// refresh full GUI with new settings (except theme) // refresh full GUI with new settings (except theme)
@ -3621,7 +3615,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
} }
private static void save(Preferences prefs, JCheckBox checkBox, String propName) { private static void save(Preferences prefs, JCheckBox checkBox, String propName) {
save(prefs, checkBox, propName, PHASE_ON, PHASE_OFF, false); save(prefs, checkBox, propName, PHASE_ON, PHASE_OFF);
} }
public static void setPrefValue(String key, boolean value) { public static void setPrefValue(String key, boolean value) {
@ -3629,23 +3623,19 @@ public class PreferencesDialog extends javax.swing.JDialog {
switch (key) { switch (key) {
case KEY_GAME_ALLOW_REQUEST_SHOW_HAND_CARDS: case KEY_GAME_ALLOW_REQUEST_SHOW_HAND_CARDS:
dialog.cbAllowRequestToShowHandCards.setSelected(value); dialog.cbAllowRequestToShowHandCards.setSelected(value);
save(MageFrame.getPreferences(), dialog.cbAllowRequestToShowHandCards, KEY_GAME_ALLOW_REQUEST_SHOW_HAND_CARDS, "true", "false", UPDATE_CACHE_POLICY); save(MageFrame.getPreferences(), dialog.cbAllowRequestToShowHandCards, KEY_GAME_ALLOW_REQUEST_SHOW_HAND_CARDS, "true", "false");
break; break;
} }
} }
private static void save(Preferences prefs, JCheckBox checkBox, String propName, String yesValue, String noValue, boolean updateCache) { private static void save(Preferences prefs, JCheckBox checkBox, String propName, String yesValue, String noValue) {
prefs.put(propName, checkBox.isSelected() ? yesValue : noValue); prefs.put(propName, checkBox.isSelected() ? yesValue : noValue);
if (updateCache) { updateCache(propName, checkBox.isSelected() ? yesValue : noValue);
updateCache(propName, checkBox.isSelected() ? yesValue : noValue);
}
} }
private static void save(Preferences prefs, JSlider slider, String propName, boolean updateCache) { private static void save(Preferences prefs, JSlider slider, String propName) {
prefs.put(propName, Integer.toString(slider.getValue())); prefs.put(propName, Integer.toString(slider.getValue()));
if (updateCache) { updateCache(propName, Integer.toString(slider.getValue()));
updateCache(propName, Integer.toString(slider.getValue()));
}
} }
private static void save(Preferences prefs, JTextField textField, String propName) { private static void save(Preferences prefs, JTextField textField, String propName) {