From 1d89b9ba4faddeeba5cba552194db2d22dc1db62 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Sat, 29 Jul 2023 04:01:33 +0200 Subject: [PATCH] Show UI restart warning label when font size changes --- .../preferences/GeneralPreferencesPanel.java | 19 ++++++++++++++++++- .../openrocket/gui/util/SwingPreferences.java | 6 +++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/swing/src/net/sf/openrocket/gui/dialogs/preferences/GeneralPreferencesPanel.java b/swing/src/net/sf/openrocket/gui/dialogs/preferences/GeneralPreferencesPanel.java index 07eecbb07..d1c472fe8 100644 --- a/swing/src/net/sf/openrocket/gui/dialogs/preferences/GeneralPreferencesPanel.java +++ b/swing/src/net/sf/openrocket/gui/dialogs/preferences/GeneralPreferencesPanel.java @@ -24,6 +24,8 @@ import javax.swing.JSpinner; import javax.swing.JTextField; import javax.swing.SwingUtilities; import javax.swing.Timer; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; @@ -54,9 +56,14 @@ import net.sf.openrocket.gui.widgets.SelectColorButton; @SuppressWarnings("serial") public class GeneralPreferencesPanel extends PreferencesPanel { + private final UITheme.Theme currentTheme; + private final int currentFontSize; public GeneralPreferencesPanel(PreferencesDialog parent) { super(parent, new MigLayout("fillx, ins 30lp n n n")); + + this.currentTheme = GUIUtil.getUITheme(); + this.currentFontSize = preferences.getUIFontSize(); //// Language selector Locale userLocale; @@ -122,6 +129,16 @@ public class GeneralPreferencesPanel extends PreferencesPanel { lblRestartORTheme.setForeground(GUIUtil.getUITheme().getDarkWarningColor()); this.add(lblRestartORTheme, "spanx, wrap para*2, growx"); + fontSizeSpinner.addChangeListener(new ChangeListener() { + @Override + public void stateChanged(ChangeEvent e) { + if (fontSizeModel.getValue() == currentFontSize) { + lblRestartORTheme.setText(""); + return; + } + lblRestartORTheme.setText(trans.get("generalprefs.lbl.themeRestartOR")); + } + }); themesCombo.addActionListener(new ActionListener() { @Override @SuppressWarnings("unchecked") @@ -129,7 +146,7 @@ public class GeneralPreferencesPanel extends PreferencesPanel { Named selection = (Named) themesCombo.getSelectedItem(); if (selection == null) return; UITheme.Theme t = selection.get(); - if (t == GUIUtil.getUITheme()) { + if (t == currentTheme) { lblRestartORTheme.setText(""); return; } diff --git a/swing/src/net/sf/openrocket/gui/util/SwingPreferences.java b/swing/src/net/sf/openrocket/gui/util/SwingPreferences.java index 49f5c8a1d..004895c02 100644 --- a/swing/src/net/sf/openrocket/gui/util/SwingPreferences.java +++ b/swing/src/net/sf/openrocket/gui/util/SwingPreferences.java @@ -337,9 +337,9 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { } private UITheme.Theme getUIThemeAsTheme() { - String theme = getString(net.sf.openrocket.startup.Preferences.UI_THEME, UITheme.Themes.LIGHT.name()); - if (theme == null) return UITheme.Themes.LIGHT; // Default theme - return UITheme.Themes.valueOf(theme); + String themeName = getString(net.sf.openrocket.startup.Preferences.UI_THEME, UITheme.Themes.LIGHT.name()); + if (themeName == null) return UITheme.Themes.LIGHT; // Default theme + return UITheme.Themes.valueOf(themeName); } /**