Skip to content

Commit

Permalink
feat(gui): open the summary tab automatically when the project is opened
Browse files Browse the repository at this point in the history
  • Loading branch information
iscle committed Feb 21, 2025
1 parent b78d3aa commit 57fae4d
Show file tree
Hide file tree
Showing 12 changed files with 40 additions and 1 deletion.
15 changes: 14 additions & 1 deletion jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public class JadxSettings extends JadxCLIArgs {

private static final Path USER_HOME = Paths.get(System.getProperty("user.home"));
private static final int RECENT_PROJECTS_COUNT = 30;
private static final int CURRENT_SETTINGS_VERSION = 22;
private static final int CURRENT_SETTINGS_VERSION = 23;

private static final Font DEFAULT_FONT = new RSyntaxTextArea().getFont();

Expand Down Expand Up @@ -127,6 +127,7 @@ public void setSaveOption(SAVEOPTION saveOption) {
private @Nullable String cacheDir = null; // null - default (system), "." - at project dir, other - custom

private boolean jumpOnDoubleClick = true;
private boolean showSummaryOnOpen = true;

private XposedCodegenLanguage xposedCodegenLanguage = XposedCodegenLanguage.JAVA;
private JadxUpdateChannel jadxUpdateChannel = JadxUpdateChannel.STABLE;
Expand Down Expand Up @@ -759,6 +760,14 @@ public void setJumpOnDoubleClick(boolean jumpOnDoubleClick) {
this.jumpOnDoubleClick = jumpOnDoubleClick;
}

public boolean isShowSummaryOnOpen() {
return showSummaryOnOpen;
}

public void setShowSummaryOnOpen(boolean showSummaryOnOpen) {
this.showSummaryOnOpen = showSummaryOnOpen;
}

public boolean isDockLogViewer() {
return dockLogViewer;
}
Expand Down Expand Up @@ -854,6 +863,10 @@ private void upgradeSettings(int fromVersion) {
migrateUseSourceNameAsClassNameAlias();
fromVersion++;
}
if (fromVersion == 22) {
showSummaryOnOpen = true;
fromVersion++;
}
if (fromVersion != CURRENT_SETTINGS_VERSION) {
LOG.warn("Incorrect settings upgrade. Expected version: {}, got: {}", CURRENT_SETTINGS_VERSION, fromVersion);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -629,6 +629,10 @@ private SettingsGroup makeOtherGroup() {
jumpOnDoubleClick.setSelected(settings.isJumpOnDoubleClick());
jumpOnDoubleClick.addItemListener(e -> settings.setJumpOnDoubleClick(e.getStateChange() == ItemEvent.SELECTED));

JCheckBox showSummaryOnOpen = new JCheckBox();
showSummaryOnOpen.setSelected(settings.isShowSummaryOnOpen());
showSummaryOnOpen.addItemListener(e -> settings.setShowSummaryOnOpen(e.getStateChange() == ItemEvent.SELECTED));

JCheckBox useAltFileDialog = new JCheckBox();
useAltFileDialog.setSelected(settings.isUseAlternativeFileDialog());
useAltFileDialog.addItemListener(e -> settings.setUseAlternativeFileDialog(e.getStateChange() == ItemEvent.SELECTED));
Expand Down Expand Up @@ -670,6 +674,7 @@ private SettingsGroup makeOtherGroup() {
SettingsGroup group = new SettingsGroup(NLS.str("preferences.other"));
group.addRow(NLS.str("preferences.lineNumbersMode"), lineNumbersMode);
group.addRow(NLS.str("preferences.jumpOnDoubleClick"), jumpOnDoubleClick);
group.addRow(NLS.str("preferences.showSummaryOnOpen"), showSummaryOnOpen);
group.addRow(NLS.str("preferences.useAlternativeFileDialog"), useAltFileDialog);
group.addRow(NLS.str("preferences.cfg"), cfg);
group.addRow(NLS.str("preferences.raw_cfg"), rawCfg);
Expand Down
12 changes: 12 additions & 0 deletions jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java
Original file line number Diff line number Diff line change
Expand Up @@ -656,6 +656,9 @@ private void onOpen() {
BreakpointManager.init(project.getFilePaths().get(0).toAbsolutePath().getParent());
treeExpansionService.load(project.getTreeExpansions());
List<EditorViewState> openTabs = project.getOpenTabs(this);
if (openTabs.isEmpty() && settings.isShowSummaryOnOpen()) {
openSummaryTab();
}
backgroundExecutor.execute(NLS.str("progress.load"),
() -> preLoadOpenTabs(openTabs),
status -> {
Expand Down Expand Up @@ -1552,6 +1555,15 @@ private void closeWindow() {
System.exit(0);
}

private void openSummaryTab() {
for (JNode node : treeRoot.getCustomNodes()) {
if (node.getClass() == SummaryNode.class) {
tabsController.codeJump(node);
break;
}
}
}

private void saveOpenTabs() {
project.saveOpenTabs(tabsController.getEditorViewStates());
}
Expand Down
1 change: 1 addition & 0 deletions jadx-gui/src/main/resources/i18n/Messages_de_DE.properties
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ preferences.other=Andere
preferences.language=Sprache
preferences.lineNumbersMode=Editor Zeilennummern-Modus
preferences.jumpOnDoubleClick=Sprung bei Doppelklick aktivieren
#preferences.showSummaryOnOpen=Show summary on open
#preferences.useAlternativeFileDialog=Use alternative file dialog
preferences.check_for_updates=Nach Updates beim Start suchen
preferences.useDx=dx/d8 zur Konvertierung von Java Bytecode verwenden
Expand Down
1 change: 1 addition & 0 deletions jadx-gui/src/main/resources/i18n/Messages_en_US.properties
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ preferences.other=Other
preferences.language=Language
preferences.lineNumbersMode=Editor line numbers mode
preferences.jumpOnDoubleClick=Enable jump on double click
preferences.showSummaryOnOpen=Show summary on open
preferences.useAlternativeFileDialog=Use alternative file dialog
preferences.check_for_updates=Check for updates on startup
preferences.useDx=Use dx/d8 to convert java bytecode
Expand Down
1 change: 1 addition & 0 deletions jadx-gui/src/main/resources/i18n/Messages_es_ES.properties
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ preferences.other=Otros
preferences.language=Idioma
#preferences.lineNumbersMode=Editor line numbers mode
#preferences.jumpOnDoubleClick=Enable jump on double click
#preferences.showSummaryOnOpen=Show summary on open
#preferences.useAlternativeFileDialog=Use alternative file dialog
preferences.check_for_updates=Buscar actualizaciones al iniciar
#preferences.useDx=Use dx/d8 to convert java bytecode
Expand Down
1 change: 1 addition & 0 deletions jadx-gui/src/main/resources/i18n/Messages_id_ID.properties
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ preferences.other=Lainnya
preferences.language=Bahasa
preferences.lineNumbersMode=Mode nomor baris editor
preferences.jumpOnDoubleClick=Aktifkan lompat saat dua kali klik
#preferences.showSummaryOnOpen=Show summary on open
preferences.useAlternativeFileDialog=Gunakan dialog berkas alternatif
preferences.check_for_updates=Periksa pembaruan saat memulai
preferences.useDx=Gunakan dx/d8 untuk mengonversi bytecode Java
Expand Down
1 change: 1 addition & 0 deletions jadx-gui/src/main/resources/i18n/Messages_ko_KR.properties
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ preferences.other=기타
preferences.language=언어
preferences.lineNumbersMode=편집기 줄 번호 모드
preferences.jumpOnDoubleClick=더블 클릭 시 점프 활성화
#preferences.showSummaryOnOpen=Show summary on open
#preferences.useAlternativeFileDialog=Use alternative file dialog
preferences.check_for_updates=시작시 업데이트 확인
preferences.useDx=dx/d8을 사용하여 Java 바이트 코드 변환
Expand Down
1 change: 1 addition & 0 deletions jadx-gui/src/main/resources/i18n/Messages_pt_BR.properties
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ preferences.other=Outro
preferences.language=Idioma
preferences.lineNumbersMode=Modo do contador de linhas do editor
preferences.jumpOnDoubleClick=Ativar salto no duplo clique
#preferences.showSummaryOnOpen=Show summary on open
#preferences.useAlternativeFileDialog=Use alternative file dialog
preferences.check_for_updates=Verificar por atualizações ao inicializar
preferences.useDx=Usar dx/d8 para converter bytecode Java
Expand Down
1 change: 1 addition & 0 deletions jadx-gui/src/main/resources/i18n/Messages_ru_RU.properties
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ preferences.other=Прочее
preferences.language=Язык
preferences.lineNumbersMode=Тип переноса строк
preferences.jumpOnDoubleClick=Переход по двойному клику
#preferences.showSummaryOnOpen=Show summary on open
preferences.useAlternativeFileDialog=Использовать альтернативный файлпикер
preferences.check_for_updates=Проверять наличие новых версий
preferences.useDx=DX/D8 для конвертации java байткода
Expand Down
1 change: 1 addition & 0 deletions jadx-gui/src/main/resources/i18n/Messages_zh_CN.properties
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ preferences.other=其他
preferences.language=语言
preferences.lineNumbersMode=编辑器行号模式
preferences.jumpOnDoubleClick=启用双击跳转
#preferences.showSummaryOnOpen=Show summary on open
preferences.useAlternativeFileDialog=使用选择文件对话框
preferences.check_for_updates=启动时检查更新
preferences.useDx=使用 dx/d8 来转换java字节码
Expand Down
1 change: 1 addition & 0 deletions jadx-gui/src/main/resources/i18n/Messages_zh_TW.properties
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ preferences.other=其他
preferences.language=語言
preferences.lineNumbersMode=編輯器行號模式
preferences.jumpOnDoubleClick=啟用點擊兩下時跳躍
#preferences.showSummaryOnOpen=Show summary on open
preferences.useAlternativeFileDialog=使用替代檔案對話框
preferences.check_for_updates=啟動時檢查更新
preferences.useDx=使用 dx/d8 來轉換 Java 位元組碼
Expand Down

0 comments on commit 57fae4d

Please sign in to comment.