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

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

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