summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Yanis482020-04-18 15:02:51 +0200
committerGravatar GitHub2020-04-18 14:02:51 +0100
commit7f1a5c1e84b1e434ce3ac4571a2906b8fd40382c (patch)
tree5ba6890fd132cf41580918635f8ae3da05fb3281 /src
parentFix a few bugs (#219) (diff)
downloadenigma-fork-7f1a5c1e84b1e434ce3ac4571a2906b8fd40382c.tar.gz
enigma-fork-7f1a5c1e84b1e434ce3ac4571a2906b8fd40382c.tar.xz
enigma-fork-7f1a5c1e84b1e434ce3ac4571a2906b8fd40382c.zip
QOL fixes (#222)
* qol fixes * ctrl_mask -> ctrl_down_mask * reverted deobfuscation change
Diffstat (limited to 'src')
-rw-r--r--src/main/java/cuchaz/enigma/Enigma.java6
-rw-r--r--src/main/java/cuchaz/enigma/EnigmaServices.java1
-rw-r--r--src/main/java/cuchaz/enigma/bytecode/translators/SourceFixVisitor.java1
-rw-r--r--src/main/java/cuchaz/enigma/bytecode/translators/TranslationSignatureVisitor.java1
-rw-r--r--src/main/java/cuchaz/enigma/gui/DecompiledClassSource.java1
-rw-r--r--src/main/java/cuchaz/enigma/gui/Gui.java3
-rw-r--r--src/main/java/cuchaz/enigma/gui/GuiController.java1
-rw-r--r--src/main/java/cuchaz/enigma/gui/dialog/CrashDialog.java2
-rw-r--r--src/main/java/cuchaz/enigma/gui/dialog/JavadocDialog.java2
-rw-r--r--src/main/java/cuchaz/enigma/gui/elements/MenuBar.java32
-rw-r--r--src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java24
-rw-r--r--src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java6
-rw-r--r--src/main/resources/lang/fr_fr.json1
13 files changed, 44 insertions, 37 deletions
diff --git a/src/main/java/cuchaz/enigma/Enigma.java b/src/main/java/cuchaz/enigma/Enigma.java
index 4522ed7..b8887c2 100644
--- a/src/main/java/cuchaz/enigma/Enigma.java
+++ b/src/main/java/cuchaz/enigma/Enigma.java
@@ -12,10 +12,7 @@
12package cuchaz.enigma; 12package cuchaz.enigma;
13 13
14import com.google.common.base.Preconditions; 14import com.google.common.base.Preconditions;
15import com.google.common.collect.ImmutableList;
16import com.google.common.collect.ImmutableListMultimap; 15import com.google.common.collect.ImmutableListMultimap;
17import com.google.common.collect.ImmutableMap;
18import com.google.common.collect.ImmutableMultimap;
19import cuchaz.enigma.analysis.ClassCache; 16import cuchaz.enigma.analysis.ClassCache;
20import cuchaz.enigma.analysis.index.JarIndex; 17import cuchaz.enigma.analysis.index.JarIndex;
21import cuchaz.enigma.api.EnigmaPlugin; 18import cuchaz.enigma.api.EnigmaPlugin;
@@ -27,10 +24,7 @@ import cuchaz.enigma.api.service.JarIndexerService;
27 24
28import java.io.IOException; 25import java.io.IOException;
29import java.nio.file.Path; 26import java.nio.file.Path;
30import java.util.ArrayList;
31import java.util.HashMap;
32import java.util.List; 27import java.util.List;
33import java.util.Map;
34import java.util.ServiceLoader; 28import java.util.ServiceLoader;
35 29
36public class Enigma { 30public class Enigma {
diff --git a/src/main/java/cuchaz/enigma/EnigmaServices.java b/src/main/java/cuchaz/enigma/EnigmaServices.java
index 45062d7..df3b7bb 100644
--- a/src/main/java/cuchaz/enigma/EnigmaServices.java
+++ b/src/main/java/cuchaz/enigma/EnigmaServices.java
@@ -4,7 +4,6 @@ import com.google.common.collect.ImmutableListMultimap;
4import cuchaz.enigma.api.service.EnigmaService; 4import cuchaz.enigma.api.service.EnigmaService;
5import cuchaz.enigma.api.service.EnigmaServiceType; 5import cuchaz.enigma.api.service.EnigmaServiceType;
6 6
7import java.util.Collections;
8import java.util.List; 7import java.util.List;
9 8
10public final class EnigmaServices { 9public final class EnigmaServices {
diff --git a/src/main/java/cuchaz/enigma/bytecode/translators/SourceFixVisitor.java b/src/main/java/cuchaz/enigma/bytecode/translators/SourceFixVisitor.java
index d672622..2b750ea 100644
--- a/src/main/java/cuchaz/enigma/bytecode/translators/SourceFixVisitor.java
+++ b/src/main/java/cuchaz/enigma/bytecode/translators/SourceFixVisitor.java
@@ -4,7 +4,6 @@ import cuchaz.enigma.analysis.index.BridgeMethodIndex;
4import cuchaz.enigma.analysis.index.JarIndex; 4import cuchaz.enigma.analysis.index.JarIndex;
5import cuchaz.enigma.translation.representation.entry.ClassDefEntry; 5import cuchaz.enigma.translation.representation.entry.ClassDefEntry;
6import cuchaz.enigma.translation.representation.entry.MethodDefEntry; 6import cuchaz.enigma.translation.representation.entry.MethodDefEntry;
7import cuchaz.enigma.translation.representation.entry.MethodEntry;
8import org.objectweb.asm.ClassVisitor; 7import org.objectweb.asm.ClassVisitor;
9import org.objectweb.asm.MethodVisitor; 8import org.objectweb.asm.MethodVisitor;
10import org.objectweb.asm.Opcodes; 9import org.objectweb.asm.Opcodes;
diff --git a/src/main/java/cuchaz/enigma/bytecode/translators/TranslationSignatureVisitor.java b/src/main/java/cuchaz/enigma/bytecode/translators/TranslationSignatureVisitor.java
index 8e7780e..eebd650 100644
--- a/src/main/java/cuchaz/enigma/bytecode/translators/TranslationSignatureVisitor.java
+++ b/src/main/java/cuchaz/enigma/bytecode/translators/TranslationSignatureVisitor.java
@@ -1,7 +1,6 @@
1package cuchaz.enigma.bytecode.translators; 1package cuchaz.enigma.bytecode.translators;
2 2
3import cuchaz.enigma.utils.Utils; 3import cuchaz.enigma.utils.Utils;
4import org.objectweb.asm.Opcodes;
5import org.objectweb.asm.signature.SignatureVisitor; 4import org.objectweb.asm.signature.SignatureVisitor;
6 5
7import java.util.Stack; 6import java.util.Stack;
diff --git a/src/main/java/cuchaz/enigma/gui/DecompiledClassSource.java b/src/main/java/cuchaz/enigma/gui/DecompiledClassSource.java
index 4d6b557..f7097f0 100644
--- a/src/main/java/cuchaz/enigma/gui/DecompiledClassSource.java
+++ b/src/main/java/cuchaz/enigma/gui/DecompiledClassSource.java
@@ -6,7 +6,6 @@ import cuchaz.enigma.analysis.EntryReference;
6import cuchaz.enigma.analysis.Token; 6import cuchaz.enigma.analysis.Token;
7import cuchaz.enigma.api.service.NameProposalService; 7import cuchaz.enigma.api.service.NameProposalService;
8import cuchaz.enigma.gui.highlight.TokenHighlightType; 8import cuchaz.enigma.gui.highlight.TokenHighlightType;
9import cuchaz.enigma.source.Decompiler;
10import cuchaz.enigma.source.SourceIndex; 9import cuchaz.enigma.source.SourceIndex;
11import cuchaz.enigma.translation.LocalNameGenerator; 10import cuchaz.enigma.translation.LocalNameGenerator;
12import cuchaz.enigma.translation.Translator; 11import cuchaz.enigma.translation.Translator;
diff --git a/src/main/java/cuchaz/enigma/gui/Gui.java b/src/main/java/cuchaz/enigma/gui/Gui.java
index 5eeb07d..ee8fbdf 100644
--- a/src/main/java/cuchaz/enigma/gui/Gui.java
+++ b/src/main/java/cuchaz/enigma/gui/Gui.java
@@ -49,7 +49,6 @@ import java.awt.event.*;
49import java.nio.file.Path; 49import java.nio.file.Path;
50import java.util.List; 50import java.util.List;
51import java.util.*; 51import java.util.*;
52import java.util.function.Consumer;
53import java.util.function.Function; 52import java.util.function.Function;
54 53
55public class Gui { 54public class Gui {
@@ -501,7 +500,7 @@ public class Gui {
501 container.add(panel); 500 container.add(panel);
502 } 501 }
503 502
504 private JComboBox<AccessModifier> addModifierComboBox(JPanel container, String name, Entry entry) { 503 private JComboBox<AccessModifier> addModifierComboBox(JPanel container, String name, Entry<?> entry) {
505 if (!getController().project.isRenamable(entry)) 504 if (!getController().project.isRenamable(entry))
506 return null; 505 return null;
507 JPanel panel = new JPanel(); 506 JPanel panel = new JPanel();
diff --git a/src/main/java/cuchaz/enigma/gui/GuiController.java b/src/main/java/cuchaz/enigma/gui/GuiController.java
index 261238b..742d6b8 100644
--- a/src/main/java/cuchaz/enigma/gui/GuiController.java
+++ b/src/main/java/cuchaz/enigma/gui/GuiController.java
@@ -37,7 +37,6 @@ import cuchaz.enigma.translation.representation.entry.MethodEntry;
37import cuchaz.enigma.utils.I18n; 37import cuchaz.enigma.utils.I18n;
38import cuchaz.enigma.utils.ReadableToken; 38import cuchaz.enigma.utils.ReadableToken;
39import cuchaz.enigma.utils.Utils; 39import cuchaz.enigma.utils.Utils;
40import org.objectweb.asm.Opcodes;
41import org.objectweb.asm.tree.ClassNode; 40import org.objectweb.asm.tree.ClassNode;
42 41
43import javax.annotation.Nullable; 42import javax.annotation.Nullable;
diff --git a/src/main/java/cuchaz/enigma/gui/dialog/CrashDialog.java b/src/main/java/cuchaz/enigma/gui/dialog/CrashDialog.java
index 3921b51..78b1d75 100644
--- a/src/main/java/cuchaz/enigma/gui/dialog/CrashDialog.java
+++ b/src/main/java/cuchaz/enigma/gui/dialog/CrashDialog.java
@@ -83,7 +83,7 @@ public class CrashDialog {
83 // show the frame 83 // show the frame
84 frame.setSize(600, 400); 84 frame.setSize(600, 400);
85 frame.setLocationRelativeTo(parent); 85 frame.setLocationRelativeTo(parent);
86 frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); 86 frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
87 } 87 }
88 88
89 public static void init(JFrame parent) { 89 public static void init(JFrame parent) {
diff --git a/src/main/java/cuchaz/enigma/gui/dialog/JavadocDialog.java b/src/main/java/cuchaz/enigma/gui/dialog/JavadocDialog.java
index 57811ee..033318a 100644
--- a/src/main/java/cuchaz/enigma/gui/dialog/JavadocDialog.java
+++ b/src/main/java/cuchaz/enigma/gui/dialog/JavadocDialog.java
@@ -74,7 +74,7 @@ public class JavadocDialog {
74 // show the frame 74 // show the frame
75 frame.setSize(600, 400); 75 frame.setSize(600, 400);
76 frame.setLocationRelativeTo(parent); 76 frame.setLocationRelativeTo(parent);
77 frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); 77 frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
78 } 78 }
79 79
80 public static void init(JFrame parent, JTextArea area, Callback callback) { 80 public static void init(JFrame parent, JTextArea area, Callback callback) {
diff --git a/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java b/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java
index 185e83c..f3bf69a 100644
--- a/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java
+++ b/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java
@@ -8,7 +8,6 @@ import cuchaz.enigma.gui.dialog.SearchDialog;
8import cuchaz.enigma.gui.stats.StatsMember; 8import cuchaz.enigma.gui.stats.StatsMember;
9import cuchaz.enigma.translation.mapping.serde.MappingFormat; 9import cuchaz.enigma.translation.mapping.serde.MappingFormat;
10import cuchaz.enigma.utils.I18n; 10import cuchaz.enigma.utils.I18n;
11import cuchaz.enigma.utils.Utils;
12 11
13import javax.swing.*; 12import javax.swing.*;
14import java.awt.*; 13import java.awt.*;
@@ -40,6 +39,9 @@ public class MenuBar extends JMenuBar {
40 public MenuBar(Gui gui) { 39 public MenuBar(Gui gui) {
41 this.gui = gui; 40 this.gui = gui;
42 41
42 /*
43 * File menu
44 */
43 { 45 {
44 JMenu menu = new JMenu(I18n.translate("menu.file")); 46 JMenu menu = new JMenu(I18n.translate("menu.file"));
45 this.add(menu); 47 this.add(menu);
@@ -48,9 +50,14 @@ public class MenuBar extends JMenuBar {
48 menu.add(item); 50 menu.add(item);
49 item.addActionListener(event -> { 51 item.addActionListener(event -> {
50 this.gui.jarFileChooser.setVisible(true); 52 this.gui.jarFileChooser.setVisible(true);
51 Path path = Paths.get(this.gui.jarFileChooser.getDirectory()).resolve(this.gui.jarFileChooser.getFile()); 53 String file = this.gui.jarFileChooser.getFile();
52 if (Files.exists(path)) { 54 // checks if the file name is not empty
53 gui.getController().openJar(path); 55 if (file != null) {
56 Path path = Paths.get(this.gui.jarFileChooser.getDirectory()).resolve(file);
57 // checks if the file name corresponds to an existing file
58 if (Files.exists(path)) {
59 gui.getController().openJar(path);
60 }
54 } 61 }
55 }); 62 });
56 } 63 }
@@ -189,6 +196,7 @@ public class MenuBar extends JMenuBar {
189 196
190 pane.add(button); 197 pane.add(button);
191 frame.pack(); 198 frame.pack();
199 frame.setLocationRelativeTo(this.gui.getFrame());
192 frame.setVisible(true); 200 frame.setVisible(true);
193 }); 201 });
194 202
@@ -202,6 +210,9 @@ public class MenuBar extends JMenuBar {
202 } 210 }
203 } 211 }
204 212
213 /*
214 * Decompiler menu
215 */
205 { 216 {
206 JMenu menu = new JMenu(I18n.translate("menu.decompiler")); 217 JMenu menu = new JMenu(I18n.translate("menu.decompiler"));
207 add(menu); 218 add(menu);
@@ -222,6 +233,9 @@ public class MenuBar extends JMenuBar {
222 } 233 }
223 } 234 }
224 235
236 /*
237 * View menu
238 */
225 { 239 {
226 JMenu menu = new JMenu(I18n.translate("menu.view")); 240 JMenu menu = new JMenu(I18n.translate("menu.view"));
227 this.add(menu); 241 this.add(menu);
@@ -250,16 +264,12 @@ public class MenuBar extends JMenuBar {
250 pane.add(text); 264 pane.add(text);
251 265
252 JButton okButton = new JButton(I18n.translate("menu.view.languages.ok")); 266 JButton okButton = new JButton(I18n.translate("menu.view.languages.ok"));
253 okButton.setAlignmentX(JButton.CENTER_ALIGNMENT);
254 okButton.setHorizontalAlignment(JButton.CENTER);
255 pane.add(okButton); 267 pane.add(okButton);
256 okButton.addActionListener(arg0 -> frame.dispose()); 268 okButton.addActionListener(arg0 -> frame.dispose());
257 269
258 frame.setSize(350, 110); 270 frame.pack();
259 frame.setResizable(false);
260 frame.setLocationRelativeTo(this.gui.getFrame()); 271 frame.setLocationRelativeTo(this.gui.getFrame());
261 frame.setVisible(true); 272 frame.setVisible(true);
262 frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
263 }); 273 });
264 } 274 }
265 275
@@ -274,6 +284,10 @@ public class MenuBar extends JMenuBar {
274 284
275 } 285 }
276 } 286 }
287
288 /*
289 * Help menu
290 */
277 { 291 {
278 JMenu menu = new JMenu(I18n.translate("menu.help")); 292 JMenu menu = new JMenu(I18n.translate("menu.help"));
279 this.add(menu); 293 this.add(menu);
diff --git a/src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java b/src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java
index 94da1d2..b92041c 100644
--- a/src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java
+++ b/src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java
@@ -24,7 +24,7 @@ public class PopupMenuBar extends JPopupMenu {
24 { 24 {
25 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.rename")); 25 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.rename"));
26 menu.addActionListener(event -> gui.startRename()); 26 menu.addActionListener(event -> gui.startRename());
27 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R, 0)); 27 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R, InputEvent.CTRL_DOWN_MASK));
28 menu.setEnabled(false); 28 menu.setEnabled(false);
29 this.add(menu); 29 this.add(menu);
30 this.renameMenu = menu; 30 this.renameMenu = menu;
@@ -32,7 +32,7 @@ public class PopupMenuBar extends JPopupMenu {
32 { 32 {
33 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.javadoc")); 33 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.javadoc"));
34 menu.addActionListener(event -> gui.startDocChange()); 34 menu.addActionListener(event -> gui.startDocChange());
35 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, 0)); 35 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, InputEvent.CTRL_DOWN_MASK));
36 menu.setEnabled(false); 36 menu.setEnabled(false);
37 this.add(menu); 37 this.add(menu);
38 this.editJavadocMenu = menu; 38 this.editJavadocMenu = menu;
@@ -40,7 +40,7 @@ public class PopupMenuBar extends JPopupMenu {
40 { 40 {
41 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.inheritance")); 41 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.inheritance"));
42 menu.addActionListener(event -> gui.showInheritance()); 42 menu.addActionListener(event -> gui.showInheritance());
43 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I, 0)); 43 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I, InputEvent.CTRL_DOWN_MASK));
44 menu.setEnabled(false); 44 menu.setEnabled(false);
45 this.add(menu); 45 this.add(menu);
46 this.showInheritanceMenu = menu; 46 this.showInheritanceMenu = menu;
@@ -48,7 +48,7 @@ public class PopupMenuBar extends JPopupMenu {
48 { 48 {
49 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.implementations")); 49 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.implementations"));
50 menu.addActionListener(event -> gui.showImplementations()); 50 menu.addActionListener(event -> gui.showImplementations());
51 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, 0)); 51 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, InputEvent.CTRL_DOWN_MASK));
52 menu.setEnabled(false); 52 menu.setEnabled(false);
53 this.add(menu); 53 this.add(menu);
54 this.showImplementationsMenu = menu; 54 this.showImplementationsMenu = menu;
@@ -56,7 +56,7 @@ public class PopupMenuBar extends JPopupMenu {
56 { 56 {
57 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.calls")); 57 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.calls"));
58 menu.addActionListener(event -> gui.showCalls(true)); 58 menu.addActionListener(event -> gui.showCalls(true));
59 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, 0)); 59 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_DOWN_MASK));
60 menu.setEnabled(false); 60 menu.setEnabled(false);
61 this.add(menu); 61 this.add(menu);
62 this.showCallsMenu = menu; 62 this.showCallsMenu = menu;
@@ -64,7 +64,7 @@ public class PopupMenuBar extends JPopupMenu {
64 { 64 {
65 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.calls.specific")); 65 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.calls.specific"));
66 menu.addActionListener(event -> gui.showCalls(false)); 66 menu.addActionListener(event -> gui.showCalls(false));
67 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.SHIFT_DOWN_MASK)); 67 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_DOWN_MASK + InputEvent.SHIFT_DOWN_MASK));
68 menu.setEnabled(false); 68 menu.setEnabled(false);
69 this.add(menu); 69 this.add(menu);
70 this.showCallsSpecificMenu = menu; 70 this.showCallsSpecificMenu = menu;
@@ -72,7 +72,7 @@ public class PopupMenuBar extends JPopupMenu {
72 { 72 {
73 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.declaration")); 73 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.declaration"));
74 menu.addActionListener(event -> gui.getController().navigateTo(gui.cursorReference.entry)); 74 menu.addActionListener(event -> gui.getController().navigateTo(gui.cursorReference.entry));
75 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, 0)); 75 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_DOWN_MASK));
76 menu.setEnabled(false); 76 menu.setEnabled(false);
77 this.add(menu); 77 this.add(menu);
78 this.openEntryMenu = menu; 78 this.openEntryMenu = menu;
@@ -80,7 +80,7 @@ public class PopupMenuBar extends JPopupMenu {
80 { 80 {
81 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.back")); 81 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.back"));
82 menu.addActionListener(event -> gui.getController().openPreviousReference()); 82 menu.addActionListener(event -> gui.getController().openPreviousReference());
83 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, 0)); 83 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, InputEvent.CTRL_DOWN_MASK));
84 menu.setEnabled(false); 84 menu.setEnabled(false);
85 this.add(menu); 85 this.add(menu);
86 this.openPreviousMenu = menu; 86 this.openPreviousMenu = menu;
@@ -88,7 +88,7 @@ public class PopupMenuBar extends JPopupMenu {
88 { 88 {
89 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.forward")); 89 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.forward"));
90 menu.addActionListener(event -> gui.getController().openNextReference()); 90 menu.addActionListener(event -> gui.getController().openNextReference());
91 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, 0)); 91 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, InputEvent.CTRL_DOWN_MASK));
92 menu.setEnabled(false); 92 menu.setEnabled(false);
93 this.add(menu); 93 this.add(menu);
94 this.openNextMenu = menu; 94 this.openNextMenu = menu;
@@ -96,7 +96,7 @@ public class PopupMenuBar extends JPopupMenu {
96 { 96 {
97 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.mark_deobfuscated")); 97 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.mark_deobfuscated"));
98 menu.addActionListener(event -> gui.toggleMapping()); 98 menu.addActionListener(event -> gui.toggleMapping());
99 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, 0)); 99 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_DOWN_MASK));
100 menu.setEnabled(false); 100 menu.setEnabled(false);
101 this.add(menu); 101 this.add(menu);
102 this.toggleMappingMenu = menu; 102 this.toggleMappingMenu = menu;
@@ -107,13 +107,13 @@ public class PopupMenuBar extends JPopupMenu {
107 { 107 {
108 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.zoom.in")); 108 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.zoom.in"));
109 menu.addActionListener(event -> gui.editor.offsetEditorZoom(2)); 109 menu.addActionListener(event -> gui.editor.offsetEditorZoom(2));
110 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, InputEvent.CTRL_MASK)); 110 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, InputEvent.CTRL_DOWN_MASK));
111 this.add(menu); 111 this.add(menu);
112 } 112 }
113 { 113 {
114 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.zoom.out")); 114 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.zoom.out"));
115 menu.addActionListener(event -> gui.editor.offsetEditorZoom(-2)); 115 menu.addActionListener(event -> gui.editor.offsetEditorZoom(-2));
116 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, InputEvent.CTRL_MASK)); 116 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, InputEvent.CTRL_DOWN_MASK));
117 this.add(menu); 117 this.add(menu);
118 } 118 }
119 { 119 {
diff --git a/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java b/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java
index bbb839e..1a34edf 100644
--- a/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java
+++ b/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java
@@ -77,7 +77,11 @@ public class PanelEditor extends JEditorPane {
77 break; 77 break;
78 78
79 case KeyEvent.VK_C: 79 case KeyEvent.VK_C:
80 gui.popupMenu.showCallsMenu.doClick(); 80 if (event.isShiftDown()) {
81 gui.popupMenu.showCallsSpecificMenu.doClick();
82 } else {
83 gui.popupMenu.showCallsMenu.doClick();
84 }
81 break; 85 break;
82 86
83 case KeyEvent.VK_O: 87 case KeyEvent.VK_O:
diff --git a/src/main/resources/lang/fr_fr.json b/src/main/resources/lang/fr_fr.json
index d1b5a5a..12214cf 100644
--- a/src/main/resources/lang/fr_fr.json
+++ b/src/main/resources/lang/fr_fr.json
@@ -3,6 +3,7 @@
3 3
4 "mapping_format.enigma_file": "Fichier Enigma", 4 "mapping_format.enigma_file": "Fichier Enigma",
5 "mapping_format.enigma_directory": "Répertoire Enigma", 5 "mapping_format.enigma_directory": "Répertoire Enigma",
6 "mapping_format.enigma_zip": "ZIP Enigma",
6 "mapping_format.tiny_v2": "Tiny v2", 7 "mapping_format.tiny_v2": "Tiny v2",
7 "mapping_format.tiny_file": "Fichier Tiny", 8 "mapping_format.tiny_file": "Fichier Tiny",
8 "mapping_format.srg_file": "Fichier SRG", 9 "mapping_format.srg_file": "Fichier SRG",