Commit bcadc282 authored by Skylot's avatar Skylot

fix(gui): use system font as default instead bundled Hack (#442, #445)

parent 7e95758a
...@@ -10,6 +10,7 @@ import java.util.Map; ...@@ -10,6 +10,7 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -20,16 +21,14 @@ import jadx.gui.utils.LangLocale; ...@@ -20,16 +21,14 @@ import jadx.gui.utils.LangLocale;
import jadx.gui.utils.NLS; import jadx.gui.utils.NLS;
import jadx.gui.utils.Utils; import jadx.gui.utils.Utils;
import static jadx.gui.utils.Utils.FONT_HACK;
public class JadxSettings extends JadxCLIArgs { public class JadxSettings extends JadxCLIArgs {
private static final Logger LOG = LoggerFactory.getLogger(JadxSettings.class); private static final Logger LOG = LoggerFactory.getLogger(JadxSettings.class);
private static final String USER_HOME = System.getProperty("user.home"); private static final String USER_HOME = System.getProperty("user.home");
private static final int RECENT_FILES_COUNT = 15; 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<String> SKIP_FIELDS = new HashSet<>(Arrays.asList( static final Set<String> SKIP_FIELDS = new HashSet<>(Arrays.asList(
"files", "input", "outputDir", "verbose", "printHelp" "files", "input", "outputDir", "verbose", "printHelp"
...@@ -263,7 +262,11 @@ public class JadxSettings extends JadxCLIArgs { ...@@ -263,7 +262,11 @@ public class JadxSettings extends JadxCLIArgs {
return Font.decode(fontStr); 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(); StringBuilder sb = new StringBuilder();
sb.append(font.getFontName()); sb.append(font.getFontName());
String fontStyleName = Utils.getFontStyleName(font.getStyle()).replaceAll(" ", ""); String fontStyleName = Utils.getFontStyleName(font.getStyle()).replaceAll(" ", "");
...@@ -314,6 +317,12 @@ public class JadxSettings extends JadxCLIArgs { ...@@ -314,6 +317,12 @@ public class JadxSettings extends JadxCLIArgs {
} }
if (fromVersion == 5) { if (fromVersion == 5) {
setRespectBytecodeAccessModifiers(false); setRespectBytecodeAccessModifiers(false);
fromVersion++;
}
if (fromVersion == 6) {
if (getFont().getFontName().equals("Hack Regular")) {
setFont(null);
}
} }
settingsVersion = CURRENT_SETTINGS_VERSION; settingsVersion = CURRENT_SETTINGS_VERSION;
sync(); sync();
......
...@@ -74,6 +74,7 @@ public class JadxSettingsWindow extends JDialog { ...@@ -74,6 +74,7 @@ public class JadxSettingsWindow extends JDialog {
JButton cancelButton = new JButton(NLS.str("preferences.cancel")); JButton cancelButton = new JButton(NLS.str("preferences.cancel"));
cancelButton.addActionListener(event -> { cancelButton.addActionListener(event -> {
JadxSettingsAdapter.fill(settings, startSettings); JadxSettingsAdapter.fill(settings, startSettings);
mainWindow.loadSettings();
dispose(); dispose();
}); });
...@@ -87,6 +88,8 @@ public class JadxSettingsWindow extends JDialog { ...@@ -87,6 +88,8 @@ public class JadxSettingsWindow extends JDialog {
if (res == JOptionPane.YES_OPTION) { if (res == JOptionPane.YES_OPTION) {
String defaults = JadxSettingsAdapter.makeString(JadxSettings.makeDefault()); String defaults = JadxSettingsAdapter.makeString(JadxSettings.makeDefault());
JadxSettingsAdapter.fill(settings, defaults); JadxSettingsAdapter.fill(settings, defaults);
mainWindow.loadSettings();
needReload();
getContentPane().removeAll(); getContentPane().removeAll();
initUI(); initUI();
pack(); pack();
...@@ -197,7 +200,6 @@ public class JadxSettingsWindow extends JDialog { ...@@ -197,7 +200,6 @@ public class JadxSettingsWindow extends JDialog {
Font font = fontChooser.getSelectedFont(); Font font = fontChooser.getSelectedFont();
LOG.debug("Selected Font: {}", font); LOG.debug("Selected Font: {}", font);
settings.setFont(font); settings.setFont(font);
mainWindow.updateFont(font);
mainWindow.loadSettings(); mainWindow.loadSettings();
fontLabel.setText(getFontLabelStr()); fontLabel.setText(getFontLabelStr());
} }
......
...@@ -652,10 +652,6 @@ public class MainWindow extends JFrame { ...@@ -652,10 +652,6 @@ public class MainWindow extends JFrame {
setSize((int) (w * WINDOW_RATIO), (int) (h * WINDOW_RATIO)); setSize((int) (w * WINDOW_RATIO), (int) (h * WINDOW_RATIO));
} }
public void updateFont(Font font) {
setFont(font);
}
public static void registerBundledFonts() { public static void registerBundledFonts() {
GraphicsEnvironment grEnv = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsEnvironment grEnv = GraphicsEnvironment.getLocalGraphicsEnvironment();
if (Utils.FONT_HACK != null) { if (Utils.FONT_HACK != null) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment