Fixed: #2315 AS3 direct editation - switching scripts during editation causing missing scripts

This commit is contained in:
Jindra Petřík
2024-09-23 09:43:09 +02:00
parent 6abe4e1d5e
commit ba596c3698
3 changed files with 15 additions and 8 deletions

View File

@@ -30,6 +30,7 @@ All notable changes to this project will be documented in this file.
- AS3 empty interface indentation
- [#2313] AS3 direct editation - parsing class traits metadata
- [#2314] AS3 direct editation - cannot save class initializer in some cases
- [#2315] AS3 direct editation - switching scripts during editation causing missing scripts
## [21.0.5] - 2024-09-05
### Fixed
@@ -3584,6 +3585,7 @@ Major version of SWF to XML export changed to 2.
[#2296]: https://www.free-decompiler.com/flash/issues/2296
[#2313]: https://www.free-decompiler.com/flash/issues/2313
[#2314]: https://www.free-decompiler.com/flash/issues/2314
[#2315]: https://www.free-decompiler.com/flash/issues/2315
[#2293]: https://www.free-decompiler.com/flash/issues/2293
[#2294]: https://www.free-decompiler.com/flash/issues/2294
[#2299]: https://www.free-decompiler.com/flash/issues/2299

View File

@@ -5387,6 +5387,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
updateUi();
}
clearEditingStatus();
reload(false, false);
if (source == dumpTree) {
@@ -6083,10 +6084,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
final ScriptPack scriptLeaf = ((AS3Package) treeItem).getCompoundInitializerPack();
if (Main.isInited() && (!Main.isWorking() || Main.isDebugging())) {
ABCPanel abcPanel = getABCPanel();
abcPanel.detailPanel.methodTraitPanel.methodCodePanel.clear();
abcPanel.setAbc(scriptLeaf.abc);
abcPanel.decompiledTextArea.setScript(scriptLeaf, true);
abcPanel.decompiledTextArea.setNoTrait();
abcPanel.setScript(scriptLeaf);
abcPanel.setCompound(true);
}
@@ -6100,10 +6098,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
final ScriptPack scriptLeaf = (ScriptPack) treeItem;
if (Main.isInited() && (!Main.isWorking() || Main.isDebugging())) {
ABCPanel abcPanel = getABCPanel();
abcPanel.detailPanel.methodTraitPanel.methodCodePanel.clear();
abcPanel.setAbc(scriptLeaf.abc);
abcPanel.decompiledTextArea.setScript(scriptLeaf, true);
abcPanel.decompiledTextArea.setNoTrait();
abcPanel.setScript(scriptLeaf);
abcPanel.setCompound(!scriptLeaf.isSimple);
}

View File

@@ -2102,4 +2102,14 @@ public class ABCPanel extends JPanel implements ItemListener, SearchListener<Scr
flexLabel.setVisible(useFlex && !value);
editDecompiledButton.setEnabled(!value);
}
public void setScript(ScriptPack scriptPack) {
setDecompiledEditMode(false);
detailPanel.setEditMode(false);
detailPanel.methodTraitPanel.methodCodePanel.clear();
setAbc(scriptPack.abc);
decompiledTextArea.setScript(scriptPack, true);
decompiledTextArea.setNoTrait();
}
}