From bcadc282073dee9d48eae1e3096ca55a1fd94862 Mon Sep 17 00:00:00 2001 From: Skylot Date: Sun, 17 Feb 2019 19:01:03 +0300 Subject: [PATCH] fix(gui): use system font as default instead bundled Hack (#442, #445) --- .../java/jadx/gui/settings/JadxSettings.java | 19 ++++++++++++++----- .../jadx/gui/settings/JadxSettingsWindow.java | 4 +++- .../src/main/java/jadx/gui/ui/MainWindow.java | 4 ---- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java index 983b2f59..e9cbe514 100644 --- a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java +++ b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java @@ -10,6 +10,7 @@ import java.util.Map; import java.util.Set; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; +import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,16 +21,14 @@ import jadx.gui.utils.LangLocale; import jadx.gui.utils.NLS; import jadx.gui.utils.Utils; -import static jadx.gui.utils.Utils.FONT_HACK; - public class JadxSettings extends JadxCLIArgs { private static final Logger LOG = LoggerFactory.getLogger(JadxSettings.class); private static final String USER_HOME = System.getProperty("user.home"); private static final int RECENT_FILES_COUNT = 15; - private static final int CURRENT_SETTINGS_VERSION = 6; + private static final int CURRENT_SETTINGS_VERSION = 7; - private static final Font DEFAULT_FONT = FONT_HACK != null ? FONT_HACK : new RSyntaxTextArea().getFont(); + private static final Font DEFAULT_FONT = new RSyntaxTextArea().getFont(); static final Set SKIP_FIELDS = new HashSet<>(Arrays.asList( "files", "input", "outputDir", "verbose", "printHelp" @@ -263,7 +262,11 @@ public class JadxSettings extends JadxCLIArgs { return Font.decode(fontStr); } - public void setFont(Font font) { + public void setFont(@Nullable Font font) { + if (font == null) { + this.fontStr = ""; + return; + } StringBuilder sb = new StringBuilder(); sb.append(font.getFontName()); String fontStyleName = Utils.getFontStyleName(font.getStyle()).replaceAll(" ", ""); @@ -314,6 +317,12 @@ public class JadxSettings extends JadxCLIArgs { } if (fromVersion == 5) { setRespectBytecodeAccessModifiers(false); + fromVersion++; + } + if (fromVersion == 6) { + if (getFont().getFontName().equals("Hack Regular")) { + setFont(null); + } } settingsVersion = CURRENT_SETTINGS_VERSION; sync(); diff --git a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsWindow.java b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsWindow.java index ab187ebc..81579a99 100644 --- a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsWindow.java +++ b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsWindow.java @@ -74,6 +74,7 @@ public class JadxSettingsWindow extends JDialog { JButton cancelButton = new JButton(NLS.str("preferences.cancel")); cancelButton.addActionListener(event -> { JadxSettingsAdapter.fill(settings, startSettings); + mainWindow.loadSettings(); dispose(); }); @@ -87,6 +88,8 @@ public class JadxSettingsWindow extends JDialog { if (res == JOptionPane.YES_OPTION) { String defaults = JadxSettingsAdapter.makeString(JadxSettings.makeDefault()); JadxSettingsAdapter.fill(settings, defaults); + mainWindow.loadSettings(); + needReload(); getContentPane().removeAll(); initUI(); pack(); @@ -197,7 +200,6 @@ public class JadxSettingsWindow extends JDialog { Font font = fontChooser.getSelectedFont(); LOG.debug("Selected Font: {}", font); settings.setFont(font); - mainWindow.updateFont(font); mainWindow.loadSettings(); fontLabel.setText(getFontLabelStr()); } diff --git a/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java b/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java index 14be9ca2..4885eb93 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java @@ -652,10 +652,6 @@ public class MainWindow extends JFrame { setSize((int) (w * WINDOW_RATIO), (int) (h * WINDOW_RATIO)); } - public void updateFont(Font font) { - setFont(font); - } - public static void registerBundledFonts() { GraphicsEnvironment grEnv = GraphicsEnvironment.getLocalGraphicsEnvironment(); if (Utils.FONT_HACK != null) { -- GitLab