From 74b212e3286c238520f8c41a16aa14f7204c14ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sun, 20 Nov 2022 21:38:07 +0100 Subject: [PATCH] Fixed export selection --- src/com/jpexs/decompiler/flash/gui/MainPanel.java | 4 ++-- .../decompiler/flash/gui/tagtree/AbstractTagTree.java | 10 ++++++++++ .../jpexs/decompiler/flash/gui/tagtree/TagTree.java | 4 ++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/com/jpexs/decompiler/flash/gui/MainPanel.java b/src/com/jpexs/decompiler/flash/gui/MainPanel.java index bd38f0627..5a3e1ee26 100644 --- a/src/com/jpexs/decompiler/flash/gui/MainPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/MainPanel.java @@ -1674,9 +1674,9 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se private List getSelection(Openable openable, List selection) { if (currentView == MainPanel.VIEW_RESOURCES) { - return selection == null ? tagTree.getSelection(openable) : tagTree.getSelection(openable, selection); + return selection == null ? tagTree.getSelection(openable) : tagTree.getSelectionAndAllSubs(openable, selection); } else if (currentView == MainPanel.VIEW_TAGLIST) { - return selection == null ? tagListTree.getSelection(openable) : tagListTree.getSelection(openable, selection); + return selection == null ? tagListTree.getSelection(openable) : tagListTree.getSelectionAndAllSubs(openable, selection); } return new ArrayList<>(); } diff --git a/src/com/jpexs/decompiler/flash/gui/tagtree/AbstractTagTree.java b/src/com/jpexs/decompiler/flash/gui/tagtree/AbstractTagTree.java index 6f70776c5..53651bc75 100644 --- a/src/com/jpexs/decompiler/flash/gui/tagtree/AbstractTagTree.java +++ b/src/com/jpexs/decompiler/flash/gui/tagtree/AbstractTagTree.java @@ -507,7 +507,17 @@ public abstract class AbstractTagTree extends JTree { public boolean hasExportableNodes() { return !getSelection(mainPanel.getCurrentSwf()).isEmpty(); } + + public List getSelectionAndAllSubs(Openable openable, List selection) { + List sel = new ArrayList<>(); + for (TreeItem treeItem : selection) { + sel.add(treeItem); + getAllSubs(treeItem, sel); + } + return getSelection(openable, sel); + } + public abstract List getSelection(Openable openable); public static List getSelection(Openable openable, List sel) { diff --git a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTree.java b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTree.java index e81b854a3..d9ceead2f 100644 --- a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTree.java +++ b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTree.java @@ -257,8 +257,8 @@ public class TagTree extends AbstractTagTree { case TagTreeModel.FOLDER_IMAGES: if (gfx) { ret = Arrays.asList(DefineBitsTag.ID, DefineBitsJPEG2Tag.ID, DefineBitsJPEG3Tag.ID, DefineBitsJPEG4Tag.ID, DefineBitsLosslessTag.ID, DefineBitsLossless2Tag.ID, - DefineExternalImage.ID, DefineExternalImage2.ID, DefineSubImage.ID - ); + DefineExternalImage.ID, DefineExternalImage2.ID, DefineSubImage.ID + ); } else { ret = Arrays.asList(DefineBitsTag.ID, DefineBitsJPEG2Tag.ID, DefineBitsJPEG3Tag.ID, DefineBitsJPEG4Tag.ID, DefineBitsLosslessTag.ID, DefineBitsLossless2Tag.ID); }