Fixed: #2384 Vanishing pins on AS3 code editing save, on script deletion and few other cases

This commit is contained in:
Jindra Petřík
2025-01-17 21:47:12 +01:00
parent 96744b54fa
commit 88802ccc64
5 changed files with 26 additions and 2 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ All notable changes to this project will be documented in this file.
- [#2375] Added limit of simultaneously played sounds - [#2375] Added limit of simultaneously played sounds
- AS1/2 - Push action hilighting, GetProperty, Call action hilighting - AS1/2 - Push action hilighting, GetProperty, Call action hilighting
- [#2381] Font color values with alpha allowed in html edittext, but alpha ignored - [#2381] Font color values with alpha allowed in html edittext, but alpha ignored
- [#2384] Vanishing pins on AS3 code editing save - [#2384] Vanishing pins on AS3 code editing save, on script deletion and few other cases
## [22.0.1] - 2024-11-20 ## [22.0.1] - 2024-11-20
### Added ### Added
@@ -500,6 +500,10 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
public void replaceItemPin(TreeItem oldItem, TreeItem newItem) { public void replaceItemPin(TreeItem oldItem, TreeItem newItem) {
pinsPanel.replaceItem(oldItem, newItem); pinsPanel.replaceItem(oldItem, newItem);
} }
public void refreshPinnedScriptPacks() {
pinsPanel.refreshScriptPacks();
}
private void handleKeyReleased(KeyEvent e) { private void handleKeyReleased(KeyEvent e) {
if (checkEdited()) { if (checkEdited()) {
@@ -1878,6 +1882,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
if (tp != null) { if (tp != null) {
getCurrentTree().setSelectionPath(tp); getCurrentTree().setSelectionPath(tp);
} }
refreshPinnedScriptPacks();
} }
private boolean isFilterEmpty(String filter) { private boolean isFilterEmpty(String filter) {
@@ -16,6 +16,7 @@
*/ */
package com.jpexs.decompiler.flash.gui; package com.jpexs.decompiler.flash.gui;
import com.jpexs.decompiler.flash.abc.ScriptPack;
import com.jpexs.decompiler.flash.configuration.Configuration; import com.jpexs.decompiler.flash.configuration.Configuration;
import com.jpexs.decompiler.flash.gui.tagtree.TreeRoot; import com.jpexs.decompiler.flash.gui.tagtree.TreeRoot;
import com.jpexs.decompiler.flash.timeline.TagScript; import com.jpexs.decompiler.flash.timeline.TagScript;
@@ -25,6 +26,7 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.JPanel; import javax.swing.JPanel;
@@ -448,4 +450,20 @@ public class PinsPanel extends JPanel {
currentUnpinnedButton.refresh(); currentUnpinnedButton.refresh();
} }
} }
public void refreshScriptPacks() {
for (int b = 0; b < buttons.size(); b++) {
PinButton button = buttons.get(b);
if (button.getItem() instanceof ScriptPack) {
ScriptPack sp = (ScriptPack) button.getItem();
List<ScriptPack> packs = sp.abc.getScriptPacks(null, sp.allABCs);
for (ScriptPack sp2 : packs) {
if (Objects.equals(sp.getClassPath(), sp2.getClassPath())) {
replaceItem(sp, sp2);
break;
}
}
}
}
}
} }
@@ -1737,7 +1737,7 @@ public class ABCPanel extends JPanel implements ItemListener, SearchListener<Scr
TreeItem sel = mainPanel.getCurrentTree().getCurrentTreeItem(); TreeItem sel = mainPanel.getCurrentTree().getCurrentTreeItem();
if ((sel instanceof ScriptPack) && (sel != pack)) { if ((sel instanceof ScriptPack) && (sel != pack)) {
mainPanel.replaceItemPin(pack, sel); mainPanel.replaceItemPin(pack, sel);
} }
} }
reload(); reload();
mainPanel.clearEditingStatus(); mainPanel.clearEditingStatus();
@@ -4221,6 +4221,7 @@ public class TagTreeContextMenu extends JPopupMenu {
mainPanel.refreshTree(); mainPanel.refreshTree();
} }
mainPanel.savePins(); mainPanel.savePins();
mainPanel.updateClassesList();
} }
} }
} }