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;
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<String> 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();
......
......@@ -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());
}
......
......@@ -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) {
......
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