feat(gui): add option for UI zoom factor (#2720)
This commit is contained in:
@@ -71,6 +71,7 @@ public class JadxSettings extends JadxCLIArgs {
|
||||
private boolean checkForUpdates = true;
|
||||
private boolean disableTooltipOnHover = false;
|
||||
private List<Path> recentProjects = new ArrayList<>();
|
||||
private float uiZoom = 1.0f;
|
||||
private String fontStr = "";
|
||||
private String smaliFontStr = "";
|
||||
private String editorTheme = "";
|
||||
@@ -539,6 +540,14 @@ public class JadxSettings extends JadxCLIArgs {
|
||||
partialSync(settings -> settings.treeWidth = JadxSettings.this.treeWidth);
|
||||
}
|
||||
|
||||
public float getUiZoom() {
|
||||
return uiZoom;
|
||||
}
|
||||
|
||||
public void setUiZoom(float uiZoom) {
|
||||
this.uiZoom = uiZoom;
|
||||
}
|
||||
|
||||
@JadxSettingsAdapter.GsonExclude
|
||||
private Font cachedFont = null;
|
||||
|
||||
|
||||
@@ -420,8 +420,16 @@ public class JadxSettingsWindow extends JDialog {
|
||||
mainWindow.loadSettings();
|
||||
});
|
||||
|
||||
JSpinner uiZoomSpinner = new JSpinner(new SpinnerNumberModel(settings.getUiZoom(), 0.1, 10.0, 0.25));
|
||||
uiZoomSpinner.addChangeListener(e -> {
|
||||
float zoomValue = ((Double) uiZoomSpinner.getValue()).floatValue();
|
||||
settings.setUiZoom(zoomValue);
|
||||
mainWindow.loadSettings();
|
||||
});
|
||||
|
||||
SettingsGroup group = new SettingsGroup(NLS.str("preferences.appearance"));
|
||||
group.addRow(NLS.str("preferences.language"), languageCbx);
|
||||
group.addRow(NLS.str("preferences.ui_zoom"), uiZoomSpinner);
|
||||
group.addRow(NLS.str("preferences.laf_theme"), lafCbx);
|
||||
group.addRow(NLS.str("preferences.theme"), themesCbx);
|
||||
JLabel fontLabel = group.addRow(getFontLabelStr(), fontBtn);
|
||||
|
||||
@@ -70,8 +70,10 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.formdev.flatlaf.FlatLaf;
|
||||
import com.formdev.flatlaf.extras.FlatInspector;
|
||||
import com.formdev.flatlaf.extras.FlatUIDefaultsInspector;
|
||||
import com.formdev.flatlaf.util.UIScale;
|
||||
|
||||
import ch.qos.logback.classic.Level;
|
||||
|
||||
@@ -263,7 +265,6 @@ public class MainWindow extends JFrame {
|
||||
JadxEventQueue.register();
|
||||
resetCache();
|
||||
FontUtils.registerBundledFonts();
|
||||
editorThemeManager.setTheme(settings.getEditorTheme());
|
||||
initUI();
|
||||
this.editorSyncManager = new EditorSyncManager(this, tabbedPane);
|
||||
this.backgroundExecutor = new BackgroundExecutor(settings, progressPane);
|
||||
@@ -1564,6 +1565,9 @@ public class MainWindow extends JFrame {
|
||||
private void updateUiSettings() {
|
||||
LafManager.updateLaf(settings);
|
||||
editorThemeManager.setTheme(settings.getEditorTheme());
|
||||
if (UIScale.setZoomFactor(settings.getUiZoom())) {
|
||||
FlatLaf.updateUI();
|
||||
}
|
||||
|
||||
Font font = settings.getFont();
|
||||
Font largerFont = font.deriveFont(font.getSize() + 2.f);
|
||||
@@ -1579,7 +1583,6 @@ public class MainWindow extends JFrame {
|
||||
if (quickTabsTree != null) {
|
||||
quickTabsTree.loadSettings();
|
||||
}
|
||||
|
||||
shortcutsController.loadSettings();
|
||||
}
|
||||
|
||||
|
||||
@@ -270,6 +270,7 @@ preferences.update_channel=Jadx-Updatekanal
|
||||
#preferences.disable_tooltip_on_hover=Disable tooltip on hover
|
||||
preferences.integerFormat=Ganzzahlformat
|
||||
#preferences.typeUpdatesCountLimit=Update type limit count
|
||||
#preferences.ui_zoom=UI Zoom factor
|
||||
preferences.font=Schriftart ändern
|
||||
preferences.smali_font=Monospaced-Schriftart (Smali/Hex)
|
||||
preferences.laf_theme=Thema
|
||||
|
||||
@@ -270,6 +270,7 @@ preferences.update_channel=Jadx update channel
|
||||
preferences.disable_tooltip_on_hover=Disable tooltip on hover
|
||||
preferences.integerFormat=Integer format
|
||||
preferences.typeUpdatesCountLimit=Update type limit count
|
||||
preferences.ui_zoom=UI Zoom factor
|
||||
preferences.font=Editor font
|
||||
preferences.smali_font=Monospaced font (Smali/Hex)
|
||||
preferences.laf_theme=Theme
|
||||
|
||||
@@ -270,6 +270,7 @@ preferences.raw_cfg=Generate RAW CFG graphs
|
||||
#preferences.disable_tooltip_on_hover=Disable tooltip on hover
|
||||
#preferences.integerFormat=Integer format
|
||||
#preferences.typeUpdatesCountLimit=Update type limit count
|
||||
#preferences.ui_zoom=UI Zoom factor
|
||||
preferences.font=Fuente del editor
|
||||
#preferences.smali_font=Monospaced font (Smali/Hex)
|
||||
#preferences.laf_theme=Theme
|
||||
|
||||
@@ -270,6 +270,7 @@ preferences.raw_cfg=Hasilkan grafik CFG mentah
|
||||
#preferences.disable_tooltip_on_hover=Disable tooltip on hover
|
||||
preferences.integerFormat=Format bilangan bulat
|
||||
#preferences.typeUpdatesCountLimit=Update type limit count
|
||||
#preferences.ui_zoom=UI Zoom factor
|
||||
preferences.font=Font editor
|
||||
preferences.smali_font=Font monospasi (Smali/Hex)
|
||||
preferences.laf_theme=Tema
|
||||
|
||||
@@ -270,6 +270,7 @@ preferences.raw_cfg=RAW CFG 그래프 생성
|
||||
#preferences.disable_tooltip_on_hover=Disable tooltip on hover
|
||||
#preferences.integerFormat=Integer format
|
||||
#preferences.typeUpdatesCountLimit=Update type limit count
|
||||
#preferences.ui_zoom=UI Zoom factor
|
||||
preferences.font=에디터 글씨체
|
||||
#preferences.smali_font=Monospaced font (Smali/Hex)
|
||||
preferences.laf_theme=테마
|
||||
|
||||
@@ -270,6 +270,7 @@ preferences.raw_cfg=Gera gráficos CFG no formato RAW
|
||||
#preferences.disable_tooltip_on_hover=Disable tooltip on hover
|
||||
#preferences.integerFormat=Integer format
|
||||
#preferences.typeUpdatesCountLimit=Update type limit count
|
||||
#preferences.ui_zoom=UI Zoom factor
|
||||
preferences.font=Fonte do editor
|
||||
#preferences.smali_font=Monospaced font (Smali/Hex)
|
||||
preferences.laf_theme=Tema
|
||||
|
||||
@@ -270,6 +270,7 @@ preferences.update_channel=Канал обновления Jadx
|
||||
#preferences.disable_tooltip_on_hover=Disable tooltip on hover
|
||||
preferences.integerFormat=Формат чисел
|
||||
#preferences.typeUpdatesCountLimit=Update type limit count
|
||||
#preferences.ui_zoom=UI Zoom factor
|
||||
preferences.font=Шрифт редактора Java
|
||||
preferences.smali_font=Шрифт smali/HEX редактора
|
||||
preferences.laf_theme=Тема приложения
|
||||
|
||||
@@ -270,6 +270,7 @@ preferences.update_channel=Jadx 更新通道
|
||||
preferences.disable_tooltip_on_hover=禁用悬停提示
|
||||
preferences.integerFormat=数值格式化
|
||||
preferences.typeUpdatesCountLimit=更新类型限制数量
|
||||
#preferences.ui_zoom=UI Zoom factor
|
||||
preferences.font=编辑器字体
|
||||
preferences.smali_font=等宽字体(Smali/Hex)
|
||||
preferences.laf_theme=主题
|
||||
|
||||
@@ -270,6 +270,7 @@ preferences.update_channel=Jadx 更新頻道
|
||||
#preferences.disable_tooltip_on_hover=Disable tooltip on hover
|
||||
preferences.integerFormat=整數模式
|
||||
#preferences.typeUpdatesCountLimit=Update type limit count
|
||||
#preferences.ui_zoom=UI Zoom factor
|
||||
preferences.font=編輯器字型
|
||||
preferences.smali_font=等寬字型 (Smali/Hex)
|
||||
preferences.laf_theme=主題
|
||||
|
||||
Reference in New Issue
Block a user