未验证 提交 358adbdd 编写于 作者: S Skylot

feat(gui): allow to disable jump on double click (#1540)

上级 65f7c802
...@@ -91,6 +91,7 @@ public class JadxSettings extends JadxCLIArgs { ...@@ -91,6 +91,7 @@ public class JadxSettings extends JadxCLIArgs {
private String adbDialogPort = "5037"; private String adbDialogPort = "5037";
private CodeCacheMode codeCacheMode = CodeCacheMode.DISK_WITH_CACHE; private CodeCacheMode codeCacheMode = CodeCacheMode.DISK_WITH_CACHE;
private boolean jumpOnDoubleClick = true;
/** /**
* UI setting: the width of the tree showing the classes, resources, ... * UI setting: the width of the tree showing the classes, resources, ...
...@@ -616,6 +617,14 @@ public class JadxSettings extends JadxCLIArgs { ...@@ -616,6 +617,14 @@ public class JadxSettings extends JadxCLIArgs {
this.codeCacheMode = codeCacheMode; this.codeCacheMode = codeCacheMode;
} }
public boolean isJumpOnDoubleClick() {
return jumpOnDoubleClick;
}
public void setJumpOnDoubleClick(boolean jumpOnDoubleClick) {
this.jumpOnDoubleClick = jumpOnDoubleClick;
}
private void upgradeSettings(int fromVersion) { private void upgradeSettings(int fromVersion) {
LOG.debug("upgrade settings from version: {} to {}", fromVersion, CURRENT_SETTINGS_VERSION); LOG.debug("upgrade settings from version: {} to {}", fromVersion, CURRENT_SETTINGS_VERSION);
if (fromVersion == 0) { if (fromVersion == 0) {
......
...@@ -626,6 +626,10 @@ public class JadxSettingsWindow extends JDialog { ...@@ -626,6 +626,10 @@ public class JadxSettingsWindow extends JDialog {
mainWindow.loadSettings(); mainWindow.loadSettings();
}); });
JCheckBox jumpOnDoubleClick = new JCheckBox();
jumpOnDoubleClick.setSelected(settings.isJumpOnDoubleClick());
jumpOnDoubleClick.addItemListener(e -> settings.setJumpOnDoubleClick(e.getStateChange() == ItemEvent.SELECTED));
JCheckBox update = new JCheckBox(); JCheckBox update = new JCheckBox();
update.setSelected(settings.isCheckForUpdates()); update.setSelected(settings.isCheckForUpdates());
update.addItemListener(e -> settings.setCheckForUpdates(e.getStateChange() == ItemEvent.SELECTED)); update.addItemListener(e -> settings.setCheckForUpdates(e.getStateChange() == ItemEvent.SELECTED));
...@@ -647,6 +651,7 @@ public class JadxSettingsWindow extends JDialog { ...@@ -647,6 +651,7 @@ public class JadxSettingsWindow extends JDialog {
SettingsGroup group = new SettingsGroup(NLS.str("preferences.other")); SettingsGroup group = new SettingsGroup(NLS.str("preferences.other"));
group.addRow(NLS.str("preferences.language"), languageCbx); group.addRow(NLS.str("preferences.language"), languageCbx);
group.addRow(NLS.str("preferences.lineNumbersMode"), lineNumbersMode); group.addRow(NLS.str("preferences.lineNumbersMode"), lineNumbersMode);
group.addRow(NLS.str("preferences.jumpOnDoubleClick"), jumpOnDoubleClick);
group.addRow(NLS.str("preferences.check_for_updates"), update); group.addRow(NLS.str("preferences.check_for_updates"), update);
group.addRow(NLS.str("preferences.cfg"), cfg); group.addRow(NLS.str("preferences.cfg"), cfg);
group.addRow(NLS.str("preferences.raw_cfg"), rawCfg); group.addRow(NLS.str("preferences.raw_cfg"), rawCfg);
......
...@@ -58,7 +58,7 @@ public final class CodeArea extends AbstractCodeArea { ...@@ -58,7 +58,7 @@ public final class CodeArea extends AbstractCodeArea {
addMouseListener(new MouseAdapter() { addMouseListener(new MouseAdapter() {
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
if (e.getClickCount() % 2 == 0 || e.isControlDown()) { if (e.isControlDown() || jumpOnDoubleClick(e)) {
navToDecl(e.getPoint(), codeLinkGenerator); navToDecl(e.getPoint(), codeLinkGenerator);
} }
} }
...@@ -69,6 +69,10 @@ public final class CodeArea extends AbstractCodeArea { ...@@ -69,6 +69,10 @@ public final class CodeArea extends AbstractCodeArea {
} }
} }
private boolean jumpOnDoubleClick(MouseEvent e) {
return e.getClickCount() == 2 && getMainWindow().getSettings().isJumpOnDoubleClick();
}
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
private void navToDecl(Point point, CodeLinkGenerator codeLinkGenerator) { private void navToDecl(Point point, CodeLinkGenerator codeLinkGenerator) {
int offs = viewToModel(point); int offs = viewToModel(point);
......
...@@ -133,6 +133,7 @@ preferences.project=Projekt ...@@ -133,6 +133,7 @@ preferences.project=Projekt
preferences.other=Andere preferences.other=Andere
preferences.language=Sprache preferences.language=Sprache
preferences.lineNumbersMode=Editor Zeilennummern-Modus preferences.lineNumbersMode=Editor Zeilennummern-Modus
#preferences.jumpOnDoubleClick=Enable jump on double click
preferences.check_for_updates=Nach Updates beim Start suchen preferences.check_for_updates=Nach Updates beim Start suchen
#preferences.useDx=Use dx/d8 to convert java bytecode #preferences.useDx=Use dx/d8 to convert java bytecode
#preferences.decompilationMode=Decompilation mode #preferences.decompilationMode=Decompilation mode
......
...@@ -133,6 +133,7 @@ preferences.project=Project ...@@ -133,6 +133,7 @@ preferences.project=Project
preferences.other=Other preferences.other=Other
preferences.language=Language preferences.language=Language
preferences.lineNumbersMode=Editor line numbers mode preferences.lineNumbersMode=Editor line numbers mode
preferences.jumpOnDoubleClick=Enable jump on double click
preferences.check_for_updates=Check for updates on startup preferences.check_for_updates=Check for updates on startup
preferences.useDx=Use dx/d8 to convert java bytecode preferences.useDx=Use dx/d8 to convert java bytecode
preferences.decompilationMode=Decompilation mode preferences.decompilationMode=Decompilation mode
......
...@@ -133,6 +133,7 @@ preferences.decompile=Descompilación ...@@ -133,6 +133,7 @@ preferences.decompile=Descompilación
preferences.other=Otros preferences.other=Otros
preferences.language=Idioma preferences.language=Idioma
#preferences.lineNumbersMode=Editor line numbers mode #preferences.lineNumbersMode=Editor line numbers mode
#preferences.jumpOnDoubleClick=Enable jump on double click
preferences.check_for_updates=Buscar actualizaciones al iniciar preferences.check_for_updates=Buscar actualizaciones al iniciar
#preferences.useDx=Use dx/d8 to convert java bytecode #preferences.useDx=Use dx/d8 to convert java bytecode
#preferences.decompilationMode=Decompilation mode #preferences.decompilationMode=Decompilation mode
......
...@@ -133,6 +133,7 @@ preferences.project=프로젝트 ...@@ -133,6 +133,7 @@ preferences.project=프로젝트
preferences.other=기타 preferences.other=기타
preferences.language=언어 preferences.language=언어
preferences.lineNumbersMode=편집기 줄 번호 모드 preferences.lineNumbersMode=편집기 줄 번호 모드
#preferences.jumpOnDoubleClick=Enable jump on double click
preferences.check_for_updates=시작시 업데이트 확인 preferences.check_for_updates=시작시 업데이트 확인
#preferences.useDx=Use dx/d8 to convert java bytecode #preferences.useDx=Use dx/d8 to convert java bytecode
#preferences.decompilationMode=Decompilation mode #preferences.decompilationMode=Decompilation mode
......
...@@ -133,6 +133,7 @@ preferences.project=项目 ...@@ -133,6 +133,7 @@ preferences.project=项目
preferences.other=其他 preferences.other=其他
preferences.language=语言 preferences.language=语言
preferences.lineNumbersMode=编辑器行号模式 preferences.lineNumbersMode=编辑器行号模式
#preferences.jumpOnDoubleClick=Enable jump on double click
preferences.check_for_updates=启动时检查更新 preferences.check_for_updates=启动时检查更新
preferences.useDx=使用 dx/d8 来转换java字节码 preferences.useDx=使用 dx/d8 来转换java字节码
preferences.decompilationMode=反编译模式 preferences.decompilationMode=反编译模式
......
...@@ -133,6 +133,7 @@ preferences.project=專案 ...@@ -133,6 +133,7 @@ preferences.project=專案
preferences.other=其他 preferences.other=其他
preferences.language=語言 preferences.language=語言
preferences.lineNumbersMode=編輯器行號模式 preferences.lineNumbersMode=編輯器行號模式
#preferences.jumpOnDoubleClick=Enable jump on double click
preferences.check_for_updates=啟動時檢查更新 preferences.check_for_updates=啟動時檢查更新
preferences.useDx=使用 dx/d8 來轉換 Java 位元組碼 preferences.useDx=使用 dx/d8 來轉換 Java 位元組碼
preferences.decompilationMode=反編譯模式 preferences.decompilationMode=反編譯模式
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册