summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Julian Burner2023-08-30 16:48:47 +0200
committerGravatar GitHub2023-08-30 15:48:47 +0100
commit7b5257f7f39bc9adba16d0c63a8f70904fe0fff9 (patch)
treed7dad12f1a8f243e945807a7e017c5743211b40c
parentFix mapping uniqueness validator always erroring in certain scenarios (#521) (diff)
downloadenigma-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
-rw-r--r--enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java2
-rw-r--r--enigma-swing/src/main/java/cuchaz/enigma/gui/elements/EditorPopupMenu.java11
-rw-r--r--enigma-swing/src/main/java/cuchaz/enigma/gui/panels/IdentifierPanel.java15
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() {