Removing whole AS2 packages

This commit is contained in:
Jindra Petřík
2021-02-24 19:55:59 +01:00
parent 0f192c14cb
commit e5720f2128
2 changed files with 28 additions and 3 deletions
@@ -288,6 +288,11 @@ public class TagTreeContextMenu extends JPopupMenu {
continue;
}
if (item instanceof AS2Package) {
allDoNotHaveDependencies = false;
continue;
}
if (item instanceof CLIPACTIONRECORD) {
continue;
}
@@ -306,6 +311,7 @@ public class TagTreeContextMenu extends JPopupMenu {
continue;
}
canRemove = false;
break;
} else {
@@ -1290,6 +1296,13 @@ public class TagTreeContextMenu extends JPopupMenu {
}
}
private void getAllAS2PackageScriptPacks(AS2Package pkg, List<ASMSource> out) {
out.addAll(pkg.scripts.values());
for (AS2Package sub : pkg.subPackages.values()) {
getAllAS2PackageScriptPacks(sub, out);
}
}
private void removeItemActionPerformed(ActionEvent evt, boolean removeDependencies) {
TreePath[] tpsArr = tagTree.getSelectionModel().getSelectionPaths();
@@ -1329,8 +1342,11 @@ public class TagTreeContextMenu extends JPopupMenu {
itemsToRemove.add(item);
itemsToRemoveParents.add(new Object());
itemsToRemoveSprites.add(new Object());
}
if (item instanceof Tag) {
} else if (item instanceof AS2Package) {
itemsToRemove.add(item);
itemsToRemoveParents.add(new Object());
itemsToRemoveSprites.add(new Object());
} else if (item instanceof Tag) {
tagsToRemove.add((Tag) item);
} else if ((item instanceof TagScript) && (((TagScript) item).getTag() instanceof ASMSource)) {
tagsToRemove.add(((TagScript) item).getTag());
@@ -1398,6 +1414,15 @@ public class TagTreeContextMenu extends JPopupMenu {
}
}
}
if (item instanceof AS2Package) {
List<ASMSource> subAsmSources = new ArrayList<>();
getAllAS2PackageScriptPacks((AS2Package) item, subAsmSources);
for (ASMSource asmSource : subAsmSources) {
if (!itemsToRemove.contains(asmSource)) {
tagsToRemove.add((Tag) asmSource);
}
}
}
}
List<ABC> abcsToPack = new ArrayList<>();