diff options
| author | 2023-08-30 16:48:47 +0200 | |
|---|---|---|
| committer | 2023-08-30 15:48:47 +0100 | |
| commit | 7b5257f7f39bc9adba16d0c63a8f70904fe0fff9 (patch) | |
| tree | d7dad12f1a8f243e945807a7e017c5743211b40c | |
| parent | Fix mapping uniqueness validator always erroring in certain scenarios (#521) (diff) | |
| download | enigma-fork-7b5257f7f39bc9adba16d0c63a8f70904fe0fff9.tar.gz enigma-fork-7b5257f7f39bc9adba16d0c63a8f70904fe0fff9.tar.xz enigma-fork-7b5257f7f39bc9adba16d0c63a8f70904fe0fff9.zip | |
Fix renaming classes via their constructor (#520)
* Fix `Reset to obfuscated` on constructors
* Fix renaming classes via their constructor
* Fix `Reset to obfuscated` not getting updated on constructors
* Fix checkstyle
* Remove unnecessary cast
3 files changed, 20 insertions, 8 deletions
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 4c108cd..1101315 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java | |||
| @@ -418,7 +418,7 @@ public class Gui { | |||
| 418 | return; | 418 | return; |
| 419 | } | 419 | } |
| 420 | 420 | ||
| 421 | Entry<?> obfEntry = cursorReference.entry; | 421 | Entry<?> obfEntry = cursorReference.getNameableEntry(); |
| 422 | toggleMappingFromEntry(obfEntry); | 422 | toggleMappingFromEntry(obfEntry); |
| 423 | } | 423 | } |
| 424 | 424 | ||
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/EditorPopupMenu.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/EditorPopupMenu.java index 2882218..dd37798 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/EditorPopupMenu.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/EditorPopupMenu.java | |||
| @@ -176,11 +176,14 @@ public class EditorPopupMenu { | |||
| 176 | this.openNextItem.setEnabled(controller.hasNextReference()); | 176 | this.openNextItem.setEnabled(controller.hasNextReference()); |
| 177 | this.toggleMappingItem.setEnabled(isRenamable && (type != null && this.gui.isEditable(type))); | 177 | this.toggleMappingItem.setEnabled(isRenamable && (type != null && this.gui.isEditable(type))); |
| 178 | 178 | ||
| 179 | if (referenceEntry != null && this.gui.getController().project.getMapper().extendedDeobfuscate(referenceEntry).isDeobfuscated()) { | 179 | boolean isDeobfuscated = false; |
| 180 | this.toggleMappingItem.setText(I18n.translate("popup_menu.reset_obfuscated")); | 180 | |
| 181 | } else { | 181 | if (referenceEntry != null) { |
| 182 | this.toggleMappingItem.setText(I18n.translate("popup_menu.mark_deobfuscated")); | 182 | Entry<?> entryToCheck = !isConstructorEntry ? referenceEntry : referenceEntry.getContainingClass(); |
| 183 | isDeobfuscated = this.gui.getController().project.getMapper().extendedDeobfuscate(entryToCheck).isDeobfuscated(); | ||
| 183 | } | 184 | } |
| 185 | |||
| 186 | this.toggleMappingItem.setText(I18n.translate("popup_menu." + (isDeobfuscated ? "reset_obfuscated" : "mark_deobfuscated"))); | ||
| 184 | } | 187 | } |
| 185 | 188 | ||
| 186 | public void retranslateUi() { | 189 | public void retranslateUi() { |
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/panels/IdentifierPanel.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/panels/IdentifierPanel.java index 7ba0376..8384cb7 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/panels/IdentifierPanel.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/panels/IdentifierPanel.java | |||
| @@ -191,12 +191,21 @@ public class IdentifierPanel { | |||
| 191 | } | 191 | } |
| 192 | 192 | ||
| 193 | private void validateRename(String newName) { | 193 | private void validateRename(String newName) { |
| 194 | gui.getController().validateChange(vc, EntryChange.modify(entry).withDeobfName(newName)); | 194 | gui.getController().validateChange(vc, withDeobfName(newName)); |
| 195 | } | 195 | } |
| 196 | 196 | ||
| 197 | private void doRename(String newName) { | 197 | private void doRename(String newName) { |
| 198 | EntryChange<? extends Entry<?>> change = EntryChange.modify(entry).withDeobfName(newName); | 198 | gui.getController().applyChange(vc, withDeobfName(newName)); |
| 199 | gui.getController().applyChange(vc, change); | 199 | } |
| 200 | |||
| 201 | private EntryChange<? extends Entry<?>> withDeobfName(String newName) { | ||
| 202 | Entry<?> entryToRename = entry; | ||
| 203 | |||
| 204 | if (entryToRename instanceof MethodEntry methodEntry && methodEntry.isConstructor()) { | ||
| 205 | entryToRename = methodEntry.getContainingClass(); | ||
| 206 | } | ||
| 207 | |||
| 208 | return EntryChange.modify(entryToRename).withDeobfName(newName); | ||
| 200 | } | 209 | } |
| 201 | 210 | ||
| 202 | public void retranslateUi() { | 211 | public void retranslateUi() { |