feat(gui): add option to disable the tooltip that pops up on hover (PR #2505)

feat(gui): add option to disable the tooltip that pops up on hover
This commit is contained in:
MewtR
2025-05-23 17:08:06 -04:00
committed by GitHub
parent 092e897104
commit b7a8a2879e
12 changed files with 27 additions and 2 deletions
@@ -69,6 +69,7 @@ public class JadxSettings extends JadxCLIArgs {
private Path lastSaveFilePath = USER_HOME;
private boolean flattenPackage = false;
private boolean checkForUpdates = true;
private boolean disableTooltipOnHover = false;
private List<Path> recentProjects = new ArrayList<>();
private String fontStr = "";
private String smaliFontStr = "";
@@ -244,6 +245,14 @@ public class JadxSettings extends JadxCLIArgs {
sync();
}
public boolean isDisableTooltipOnHover() {
return disableTooltipOnHover;
}
public void setDisableTooltipOnHover(boolean disableTooltipOnHover) {
this.disableTooltipOnHover = disableTooltipOnHover;
}
public List<Path> getRecentProjects() {
return Collections.unmodifiableList(recentProjects);
}
@@ -645,6 +645,10 @@ public class JadxSettingsWindow extends JDialog {
update.setSelected(settings.isCheckForUpdates());
update.addItemListener(e -> settings.setCheckForUpdates(e.getStateChange() == ItemEvent.SELECTED));
JCheckBox disableTooltipOnHover = new JCheckBox();
disableTooltipOnHover.setSelected(settings.isDisableTooltipOnHover());
disableTooltipOnHover.addItemListener(e -> settings.setDisableTooltipOnHover(e.getStateChange() == ItemEvent.SELECTED));
JCheckBox cfg = new JCheckBox();
cfg.setSelected(settings.isCfgOutput());
cfg.addItemListener(e -> {
@@ -684,6 +688,7 @@ public class JadxSettingsWindow extends JDialog {
group.addRow(NLS.str("preferences.xposed_codegen_language"), xposedCodegenLanguage);
group.addRow(NLS.str("preferences.check_for_updates"), update);
group.addRow(NLS.str("preferences.update_channel"), updateChannel);
group.addRow(NLS.str("preferences.disable_tooltip_on_hover"), disableTooltipOnHover);
return group;
}
@@ -12,6 +12,7 @@ import org.slf4j.LoggerFactory;
import jadx.api.JavaNode;
import jadx.gui.treemodel.JNode;
import jadx.gui.ui.MainWindow;
import jadx.gui.utils.JNodeCache;
class MouseHoverHighlighter extends MouseMotionAdapter {
@@ -86,11 +87,12 @@ class MouseHoverHighlighter extends MouseMotionAdapter {
}
private void updateToolTip(JavaNode node) {
if (node == null) {
MainWindow mainWindow = codeArea.getMainWindow();
if (node == null || mainWindow.getSettings().isDisableTooltipOnHover()) {
codeArea.setToolTipText(null);
return;
}
JNodeCache nodeCache = codeArea.getMainWindow().getCacheObject().getNodeCache();
JNodeCache nodeCache = mainWindow.getCacheObject().getNodeCache();
JNode jNode = nodeCache.makeFrom(node);
codeArea.setToolTipText(jNode.getTooltip());
}
@@ -264,6 +264,7 @@ preferences.cfg=CFG-Grafiken für Methoden generieren (im 'dot'-Format)
preferences.raw_cfg=RAW CFG-Grafiken generieren
preferences.xposed_codegen_language=Xposed-Code-Generierungssprache
preferences.update_channel=Jadx-Updatekanal
#preferences.disable_tooltip_on_hover=Disable tooltip on hover
preferences.integerFormat=Ganzzahlformat
preferences.font=Schriftart ändern
preferences.smali_font=Monospaced-Schriftart (Smali/Hex)
@@ -264,6 +264,7 @@ preferences.cfg=Generate methods CFG graphs (in 'dot' format)
preferences.raw_cfg=Generate RAW CFG graphs
preferences.xposed_codegen_language=Xposed code generation language
preferences.update_channel=Jadx update channel
preferences.disable_tooltip_on_hover=Disable tooltip on hover
preferences.integerFormat=Integer format
preferences.font=Editor font
preferences.smali_font=Monospaced font (Smali/Hex)
@@ -264,6 +264,7 @@ preferences.cfg=Generar methods CFG graphs (in 'dot' format)
preferences.raw_cfg=Generate RAW CFG graphs
#preferences.xposed_codegen_language=Xposed code generation language
#preferences.update_channel=Jadx update channel
#preferences.disable_tooltip_on_hover=Disable tooltip on hover
#preferences.integerFormat=Integer format
preferences.font=Fuente del editor
#preferences.smali_font=Monospaced font (Smali/Hex)
@@ -264,6 +264,7 @@ preferences.cfg=Hasilkan grafik CFG metode (dalam format 'dot')
preferences.raw_cfg=Hasilkan grafik CFG mentah
#preferences.xposed_codegen_language=Xposed code generation language
#preferences.update_channel=Jadx update channel
#preferences.disable_tooltip_on_hover=Disable tooltip on hover
preferences.integerFormat=Format bilangan bulat
preferences.font=Font editor
preferences.smali_font=Font monospasi (Smali/Hex)
@@ -264,6 +264,7 @@ preferences.cfg=메소드 CFG 그래프 생성 ('dot' 포맷)
preferences.raw_cfg=RAW CFG 그래프 생성
#preferences.xposed_codegen_language=Xposed code generation language
#preferences.update_channel=Jadx update channel
#preferences.disable_tooltip_on_hover=Disable tooltip on hover
#preferences.integerFormat=Integer format
preferences.font=에디터 글씨체
#preferences.smali_font=Monospaced font (Smali/Hex)
@@ -264,6 +264,7 @@ preferences.cfg=Gera gráficos de métodos CFG no formato de pontos ('dot')
preferences.raw_cfg=Gera gráficos CFG no formato RAW
#preferences.xposed_codegen_language=Xposed code generation language
#preferences.update_channel=Jadx update channel
#preferences.disable_tooltip_on_hover=Disable tooltip on hover
#preferences.integerFormat=Integer format
preferences.font=Fonte do editor
#preferences.smali_font=Monospaced font (Smali/Hex)
@@ -264,6 +264,7 @@ preferences.cfg=Методы генерации графиков CFG (в "dot"
preferences.raw_cfg=Генерировать необработанные графики CFG
preferences.xposed_codegen_language=Язык генерации Xposed хуков
preferences.update_channel=Канал обновления Jadx
#preferences.disable_tooltip_on_hover=Disable tooltip on hover
preferences.integerFormat=Формат чисел
preferences.font=Шрифт редактора Java
preferences.smali_font=Шрифт smali/HEX редактора
@@ -264,6 +264,7 @@ preferences.cfg=生成方法的 CFG 图(‘.dot’)
preferences.raw_cfg=生成原始的 CFG 图
preferences.xposed_codegen_language=Xposed代码生成语言
preferences.update_channel=Jadx 更新通道
#preferences.disable_tooltip_on_hover=Disable tooltip on hover
preferences.integerFormat=数值格式化
preferences.font=编辑器字体
preferences.smali_font=等宽字体 (Smali/Hex)
@@ -264,6 +264,7 @@ preferences.cfg=產生方法 CFG 圖表 ('dot' 格式)
preferences.raw_cfg=產生 RAW CFG 圖表
preferences.xposed_codegen_language=Xposed 程式碼產生語言
preferences.update_channel=Jadx 更新頻道
#preferences.disable_tooltip_on_hover=Disable tooltip on hover
preferences.integerFormat=整數模式
preferences.font=編輯器字型
preferences.smali_font=等寬字型 (Smali/Hex)