diff options
| author | 2020-11-15 11:47:35 +0100 | |
|---|---|---|
| committer | 2020-11-15 11:47:35 +0100 | |
| commit | a5dae162ae354f0e8064ec795a09e9d1f1a855f1 (patch) | |
| tree | c524e715c253ac3828cacfb87563091e770ba446 | |
| parent | Add "include synthetic parameters" to mapping stats & save options (#309) (diff) | |
| parent | bump minor (diff) | |
| download | enigma-a5dae162ae354f0e8064ec795a09e9d1f1a855f1.tar.gz enigma-a5dae162ae354f0e8064ec795a09e9d1f1a855f1.tar.xz enigma-a5dae162ae354f0e8064ec795a09e9d1f1a855f1.zip | |
Merge pull request #323 from YanisBft/various
Improvements to deobf panel popup menu
| -rw-r--r-- | build.gradle | 2 | ||||
| -rw-r--r-- | enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java | 1 | ||||
| -rw-r--r-- | enigma-swing/src/main/java/cuchaz/enigma/gui/elements/DeobfPanelPopupMenu.java | 36 | ||||
| -rw-r--r-- | enigma/src/main/resources/lang/en_us.json | 3 | ||||
| -rw-r--r-- | enigma/src/main/resources/lang/fr_fr.json | 3 |
5 files changed, 35 insertions, 10 deletions
diff --git a/build.gradle b/build.gradle index 81c96fb9..a2a735bd 100644 --- a/build.gradle +++ b/build.gradle | |||
| @@ -24,7 +24,7 @@ subprojects { | |||
| 24 | } | 24 | } |
| 25 | 25 | ||
| 26 | group = 'cuchaz' | 26 | group = 'cuchaz' |
| 27 | version = '0.21.5' | 27 | version = '0.21.6' |
| 28 | 28 | ||
| 29 | def buildNumber = System.getenv("BUILD_NUMBER") | 29 | def buildNumber = System.getenv("BUILD_NUMBER") |
| 30 | version = version + "+" + (buildNumber ? "build.$buildNumber" : "local") | 30 | version = version + "+" + (buildNumber ? "build.$buildNumber" : "local") |
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java index cbc9688e..c56731dc 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java | |||
| @@ -295,6 +295,7 @@ public class Gui implements LanguageChangeListener { | |||
| 295 | @Override | 295 | @Override |
| 296 | public void mousePressed(MouseEvent e) { | 296 | public void mousePressed(MouseEvent e) { |
| 297 | if (SwingUtilities.isRightMouseButton(e)) { | 297 | if (SwingUtilities.isRightMouseButton(e)) { |
| 298 | deobfPanel.deobfClasses.setSelectionRow(deobfPanel.deobfClasses.getClosestRowForLocation(e.getX(), e.getY())); | ||
| 298 | int i = deobfPanel.deobfClasses.getRowForPath(deobfPanel.deobfClasses.getSelectionPath()); | 299 | int i = deobfPanel.deobfClasses.getRowForPath(deobfPanel.deobfClasses.getSelectionPath()); |
| 299 | if (i != -1) { | 300 | if (i != -1) { |
| 300 | deobfPanelPopupMenu.show(deobfPanel.deobfClasses, e.getX(), e.getY()); | 301 | deobfPanelPopupMenu.show(deobfPanel.deobfClasses, e.getX(), e.getY()); |
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/DeobfPanelPopupMenu.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/DeobfPanelPopupMenu.java index a4d749c2..c888e4f7 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/DeobfPanelPopupMenu.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/DeobfPanelPopupMenu.java | |||
| @@ -5,30 +5,52 @@ import cuchaz.enigma.gui.Gui; | |||
| 5 | import cuchaz.enigma.utils.I18n; | 5 | import cuchaz.enigma.utils.I18n; |
| 6 | 6 | ||
| 7 | import javax.swing.*; | 7 | import javax.swing.*; |
| 8 | import javax.swing.tree.TreePath; | ||
| 8 | import java.awt.*; | 9 | import java.awt.*; |
| 9 | 10 | ||
| 10 | public class DeobfPanelPopupMenu { | 11 | public class DeobfPanelPopupMenu { |
| 11 | 12 | ||
| 12 | private final JPopupMenu ui; | 13 | private final JPopupMenu ui; |
| 13 | private final JMenuItem rename; | 14 | private final JMenuItem renamePackage; |
| 15 | private final JMenuItem renameClass; | ||
| 14 | 16 | ||
| 15 | public DeobfPanelPopupMenu(Gui gui) { | 17 | public DeobfPanelPopupMenu(Gui gui) { |
| 16 | this.ui = new JPopupMenu(); | 18 | this.ui = new JPopupMenu(); |
| 17 | 19 | ||
| 18 | ClassSelector deobfClasses = gui.getDeobfPanel().deobfClasses; | 20 | ClassSelector deobfClasses = gui.getDeobfPanel().deobfClasses; |
| 19 | 21 | ||
| 20 | this.rename = new JMenuItem(); | 22 | this.renamePackage = new JMenuItem(); |
| 21 | this.rename.addActionListener(a -> deobfClasses.getUI().startEditingAtPath(deobfClasses, deobfClasses.getSelectionPath())); | 23 | this.renamePackage.addActionListener(a -> { |
| 22 | this.ui.add(this.rename); | 24 | TreePath path; |
| 25 | |||
| 26 | if (deobfClasses.getSelectedClass() != null) { | ||
| 27 | // Rename parent package if selected path is a class | ||
| 28 | path = deobfClasses.getSelectionPath().getParentPath(); | ||
| 29 | } else { | ||
| 30 | // Rename selected path if it's already a package | ||
| 31 | path = deobfClasses.getSelectionPath(); | ||
| 32 | } | ||
| 33 | |||
| 34 | deobfClasses.getUI().startEditingAtPath(deobfClasses, path); | ||
| 35 | }); | ||
| 36 | this.ui.add(this.renamePackage); | ||
| 37 | |||
| 38 | this.renameClass = new JMenuItem(); | ||
| 39 | this.renameClass.addActionListener(a -> deobfClasses.getUI().startEditingAtPath(deobfClasses, deobfClasses.getSelectionPath())); | ||
| 40 | this.ui.add(this.renameClass); | ||
| 23 | 41 | ||
| 24 | this.retranslateUi(); | 42 | this.retranslateUi(); |
| 25 | } | 43 | } |
| 26 | 44 | ||
| 27 | public void show(Component invoker, int x, int y) { | 45 | public void show(ClassSelector deobfClasses, int x, int y) { |
| 28 | this.ui.show(invoker, x, y); | 46 | // Only enable rename class if selected path is a class |
| 47 | this.renameClass.setEnabled(deobfClasses.getSelectedClass() != null); | ||
| 48 | |||
| 49 | this.ui.show(deobfClasses, x, y); | ||
| 29 | } | 50 | } |
| 30 | 51 | ||
| 31 | public void retranslateUi() { | 52 | public void retranslateUi() { |
| 32 | this.rename.setText(I18n.translate("popup_menu.deobf_panel.rename")); | 53 | this.renamePackage.setText(I18n.translate("popup_menu.deobf_panel.rename_package")); |
| 54 | this.renameClass.setText(I18n.translate("popup_menu.deobf_panel.rename_class")); | ||
| 33 | } | 55 | } |
| 34 | } | 56 | } |
diff --git a/enigma/src/main/resources/lang/en_us.json b/enigma/src/main/resources/lang/en_us.json index 50d06a82..9db4e1fc 100644 --- a/enigma/src/main/resources/lang/en_us.json +++ b/enigma/src/main/resources/lang/en_us.json | |||
| @@ -79,7 +79,8 @@ | |||
| 79 | "popup_menu.editor_tab.close_others": "Close Others", | 79 | "popup_menu.editor_tab.close_others": "Close Others", |
| 80 | "popup_menu.editor_tab.close_left": "Close All to the Left", | 80 | "popup_menu.editor_tab.close_left": "Close All to the Left", |
| 81 | "popup_menu.editor_tab.close_right": "Close All to the Right", | 81 | "popup_menu.editor_tab.close_right": "Close All to the Right", |
| 82 | "popup_menu.deobf_panel.rename": "Rename", | 82 | "popup_menu.deobf_panel.rename_package": "Rename Package", |
| 83 | "popup_menu.deobf_panel.rename_class": "Rename Class", | ||
| 83 | 84 | ||
| 84 | "editor.decompiling": "Decompiling...", | 85 | "editor.decompiling": "Decompiling...", |
| 85 | "editor.decompile_error": "An error was encountered while decompiling.", | 86 | "editor.decompile_error": "An error was encountered while decompiling.", |
diff --git a/enigma/src/main/resources/lang/fr_fr.json b/enigma/src/main/resources/lang/fr_fr.json index b2b12093..127b9c88 100644 --- a/enigma/src/main/resources/lang/fr_fr.json +++ b/enigma/src/main/resources/lang/fr_fr.json | |||
| @@ -79,7 +79,8 @@ | |||
| 79 | "popup_menu.editor_tab.close_others": "Fermer les autres", | 79 | "popup_menu.editor_tab.close_others": "Fermer les autres", |
| 80 | "popup_menu.editor_tab.close_left": "Tout fermer sur la gauche", | 80 | "popup_menu.editor_tab.close_left": "Tout fermer sur la gauche", |
| 81 | "popup_menu.editor_tab.close_right": "Tout fermer sur la droite", | 81 | "popup_menu.editor_tab.close_right": "Tout fermer sur la droite", |
| 82 | "popup_menu.deobf_panel.rename": "Renommer", | 82 | "popup_menu.deobf_panel.rename_package": "Renommer le package", |
| 83 | "popup_menu.deobf_panel.rename_class": "Renommer la classe", | ||
| 83 | 84 | ||
| 84 | "editor.decompiling": "Décompilation...", | 85 | "editor.decompiling": "Décompilation...", |
| 85 | "editor.decompile_error": "Une erreur est survenue lors de la décompilation.", | 86 | "editor.decompile_error": "Une erreur est survenue lors de la décompilation.", |