diff options
Diffstat (limited to 'src/main/java')
5 files changed, 28 insertions, 11 deletions
diff --git a/src/main/java/cuchaz/enigma/EnigmaProject.java b/src/main/java/cuchaz/enigma/EnigmaProject.java index 82fc0bd..dd1f9fa 100644 --- a/src/main/java/cuchaz/enigma/EnigmaProject.java +++ b/src/main/java/cuchaz/enigma/EnigmaProject.java | |||
| @@ -273,6 +273,7 @@ public class EnigmaProject { | |||
| 273 | } | 273 | } |
| 274 | 274 | ||
| 275 | void writeTo(Path path) throws IOException { | 275 | void writeTo(Path path) throws IOException { |
| 276 | Files.createDirectories(path.getParent()); | ||
| 276 | try (BufferedWriter writer = Files.newBufferedWriter(path)) { | 277 | try (BufferedWriter writer = Files.newBufferedWriter(path)) { |
| 277 | writer.write(source); | 278 | writer.write(source); |
| 278 | } | 279 | } |
diff --git a/src/main/java/cuchaz/enigma/command/DeobfuscateCommand.java b/src/main/java/cuchaz/enigma/command/DeobfuscateCommand.java index c24e661..b0d2a7d 100644 --- a/src/main/java/cuchaz/enigma/command/DeobfuscateCommand.java +++ b/src/main/java/cuchaz/enigma/command/DeobfuscateCommand.java | |||
| @@ -32,8 +32,6 @@ public class DeobfuscateCommand extends Command { | |||
| 32 | ProgressListener progress = new ConsoleProgressListener(); | 32 | ProgressListener progress = new ConsoleProgressListener(); |
| 33 | 33 | ||
| 34 | EnigmaProject.JarExport jar = project.exportRemappedJar(progress); | 34 | EnigmaProject.JarExport jar = project.exportRemappedJar(progress); |
| 35 | EnigmaProject.SourceExport source = jar.decompile(progress); | 35 | jar.write(fileJarOut, progress); |
| 36 | |||
| 37 | source.write(fileJarOut, progress); | ||
| 38 | } | 36 | } |
| 39 | } | 37 | } |
diff --git a/src/main/java/cuchaz/enigma/gui/EnigmaQuickFindDialog.java b/src/main/java/cuchaz/enigma/gui/EnigmaQuickFindDialog.java index 0c1d4cd..c912be3 100644 --- a/src/main/java/cuchaz/enigma/gui/EnigmaQuickFindDialog.java +++ b/src/main/java/cuchaz/enigma/gui/EnigmaQuickFindDialog.java | |||
| @@ -36,7 +36,12 @@ public class EnigmaQuickFindDialog extends QuickFindDialog { | |||
| 36 | public void showFor(JTextComponent target) { | 36 | public void showFor(JTextComponent target) { |
| 37 | String selectedText = target.getSelectedText(); | 37 | String selectedText = target.getSelectedText(); |
| 38 | 38 | ||
| 39 | super.showFor(target); | 39 | try { |
| 40 | super.showFor(target); | ||
| 41 | } catch (Exception e) { | ||
| 42 | e.printStackTrace(); | ||
| 43 | return; | ||
| 44 | } | ||
| 40 | 45 | ||
| 41 | Container view = target.getParent(); | 46 | Container view = target.getParent(); |
| 42 | Point loc = new Point(0, view.getHeight() - getSize().height); | 47 | Point loc = new Point(0, view.getHeight() - getSize().height); |
diff --git a/src/main/java/cuchaz/enigma/gui/Gui.java b/src/main/java/cuchaz/enigma/gui/Gui.java index f5dd8a0..6fc9fcf 100644 --- a/src/main/java/cuchaz/enigma/gui/Gui.java +++ b/src/main/java/cuchaz/enigma/gui/Gui.java | |||
| @@ -529,16 +529,15 @@ public class Gui { | |||
| 529 | return combo; | 529 | return combo; |
| 530 | } | 530 | } |
| 531 | 531 | ||
| 532 | public void onCaretMove(int pos) { | 532 | public void onCaretMove(int pos, boolean fromClick) { |
| 533 | EntryRemapper mapper = controller.project.getMapper(); | 533 | EntryRemapper mapper = controller.project.getMapper(); |
| 534 | |||
| 535 | Token token = this.controller.getToken(pos); | 534 | Token token = this.controller.getToken(pos); |
| 536 | boolean isToken = token != null; | 535 | boolean isToken = token != null; |
| 537 | 536 | ||
| 538 | cursorReference = this.controller.getReference(token); | 537 | cursorReference = this.controller.getReference(token); |
| 539 | Entry<?> referenceEntry = cursorReference != null ? cursorReference.entry : null; | 538 | Entry<?> referenceEntry = cursorReference != null ? cursorReference.entry : null; |
| 540 | 539 | ||
| 541 | if (referenceEntry != null && shouldNavigateOnClick) { | 540 | if (referenceEntry != null && shouldNavigateOnClick && fromClick) { |
| 542 | shouldNavigateOnClick = false; | 541 | shouldNavigateOnClick = false; |
| 543 | Entry<?> navigationEntry = referenceEntry; | 542 | Entry<?> navigationEntry = referenceEntry; |
| 544 | if (cursorReference.context == null) { | 543 | if (cursorReference.context == null) { |
| @@ -773,8 +772,9 @@ public class Gui { | |||
| 773 | if (response == JOptionPane.YES_OPTION) { | 772 | if (response == JOptionPane.YES_OPTION) { |
| 774 | this.saveMapping(); | 773 | this.saveMapping(); |
| 775 | this.frame.dispose(); | 774 | this.frame.dispose(); |
| 776 | } else if (response == JOptionPane.NO_OPTION) | 775 | } else if (response == JOptionPane.NO_OPTION) { |
| 777 | this.frame.dispose(); | 776 | this.frame.dispose(); |
| 777 | } | ||
| 778 | 778 | ||
| 779 | return null; | 779 | return null; |
| 780 | }, "Save and exit", "Discard changes", "Cancel"); | 780 | }, "Save and exit", "Discard changes", "Cancel"); |
diff --git a/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java b/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java index e8a9cad..123238f 100644 --- a/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java +++ b/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java | |||
| @@ -16,14 +16,21 @@ import java.awt.event.MouseAdapter; | |||
| 16 | import java.awt.event.MouseEvent; | 16 | import java.awt.event.MouseEvent; |
| 17 | 17 | ||
| 18 | public class PanelEditor extends JEditorPane { | 18 | public class PanelEditor extends JEditorPane { |
| 19 | private boolean mouseIsPressed = false; | ||
| 20 | |||
| 19 | public PanelEditor(Gui gui) { | 21 | public PanelEditor(Gui gui) { |
| 20 | this.setEditable(false); | 22 | this.setEditable(false); |
| 21 | this.setSelectionColor(new Color(31, 46, 90)); | 23 | this.setSelectionColor(new Color(31, 46, 90)); |
| 22 | this.setCaret(new BrowserCaret()); | 24 | this.setCaret(new BrowserCaret()); |
| 23 | this.addCaretListener(event -> gui.onCaretMove(event.getDot())); | 25 | this.addCaretListener(event -> gui.onCaretMove(event.getDot(), mouseIsPressed)); |
| 24 | final PanelEditor self = this; | 26 | final PanelEditor self = this; |
| 25 | this.addMouseListener(new MouseAdapter() { | 27 | this.addMouseListener(new MouseAdapter() { |
| 26 | @Override | 28 | @Override |
| 29 | public void mousePressed(MouseEvent mouseEvent) { | ||
| 30 | mouseIsPressed = true; | ||
| 31 | } | ||
| 32 | |||
| 33 | @Override | ||
| 27 | public void mouseReleased(MouseEvent e) { | 34 | public void mouseReleased(MouseEvent e) { |
| 28 | switch (e.getButton()) { | 35 | switch (e.getButton()) { |
| 29 | case MouseEvent.BUTTON3: // Right click | 36 | case MouseEvent.BUTTON3: // Right click |
| @@ -38,12 +45,15 @@ public class PanelEditor extends JEditorPane { | |||
| 38 | gui.getController().openNextReference(); | 45 | gui.getController().openNextReference(); |
| 39 | break; | 46 | break; |
| 40 | } | 47 | } |
| 48 | mouseIsPressed = false; | ||
| 41 | } | 49 | } |
| 42 | }); | 50 | }); |
| 43 | this.addKeyListener(new KeyAdapter() { | 51 | this.addKeyListener(new KeyAdapter() { |
| 44 | @Override | 52 | @Override |
| 45 | public void keyPressed(KeyEvent event) { | 53 | public void keyPressed(KeyEvent event) { |
| 46 | if (event.isControlDown()) { | 54 | if (event.isControlDown()) { |
| 55 | gui.setShouldNavigateOnClick(false); | ||
| 56 | |||
| 47 | switch (event.getKeyCode()) { | 57 | switch (event.getKeyCode()) { |
| 48 | case KeyEvent.VK_I: | 58 | case KeyEvent.VK_I: |
| 49 | gui.popupMenu.showInheritanceMenu.doClick(); | 59 | gui.popupMenu.showInheritanceMenu.doClick(); |
| @@ -81,12 +91,15 @@ public class PanelEditor extends JEditorPane { | |||
| 81 | gui.getController().refreshCurrentClass(); | 91 | gui.getController().refreshCurrentClass(); |
| 82 | break; | 92 | break; |
| 83 | 93 | ||
| 94 | case KeyEvent.VK_F: | ||
| 95 | // prevent navigating on click when quick find activated | ||
| 96 | break; | ||
| 97 | |||
| 84 | default: | 98 | default: |
| 99 | gui.setShouldNavigateOnClick(true); // CTRL | ||
| 85 | break; | 100 | break; |
| 86 | } | 101 | } |
| 87 | } | 102 | } |
| 88 | |||
| 89 | gui.setShouldNavigateOnClick(event.isControlDown()); | ||
| 90 | } | 103 | } |
| 91 | 104 | ||
| 92 | @Override | 105 | @Override |