From 14ae76a269be5df498cae3a0d0a8bd60b28f3f05 Mon Sep 17 00:00:00 2001 From: "honfika@gmail.com" Date: Sat, 12 Mar 2016 14:31:35 +0100 Subject: [PATCH] as3 script search fix when class filter is applied in tag tree, clear filter if the selected search result is currently not visible --- .../jpexs/decompiler/flash/gui/MainFrameMenu.java | 2 +- src/com/jpexs/decompiler/flash/gui/MainPanel.java | 13 ++++--------- .../jpexs/decompiler/flash/gui/abc/ABCPanel.java | 11 ++++++++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/com/jpexs/decompiler/flash/gui/MainFrameMenu.java b/src/com/jpexs/decompiler/flash/gui/MainFrameMenu.java index 11291e169..1cf0ae1ae 100644 --- a/src/com/jpexs/decompiler/flash/gui/MainFrameMenu.java +++ b/src/com/jpexs/decompiler/flash/gui/MainFrameMenu.java @@ -319,7 +319,7 @@ public abstract class MainFrameMenu implements MenuBuilder { protected boolean search(ActionEvent evt, Boolean searchInText) { if (swf != null) { - mainFrame.getPanel().searchInActionScriptOrText(searchInText); + mainFrame.getPanel().searchInActionScriptOrText(searchInText, swf); return true; } diff --git a/src/com/jpexs/decompiler/flash/gui/MainPanel.java b/src/com/jpexs/decompiler/flash/gui/MainPanel.java index 9affdc614..7b1e7ccc8 100644 --- a/src/com/jpexs/decompiler/flash/gui/MainPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/MainPanel.java @@ -769,7 +769,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se enableDrop(true); } - private void closeTagTreeSearch() { + public void closeTagTreeSearch() { filterField.setText(""); doFilter(); searchPanel.setVisible(false); @@ -1494,11 +1494,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se if (treePanelMode == TreePanelMode.TAG_TREE) { TreeItem treeNode = (TreeItem) tagTree.getLastSelectedPathComponent(); - if (treeNode == null) { - return swfs.get(0).get(0); - } - - if (treeNode instanceof SWFList) { + if (treeNode == null || treeNode instanceof SWFList) { return null; } @@ -1651,7 +1647,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se } } - public void searchInActionScriptOrText(Boolean searchInText) { + public void searchInActionScriptOrText(Boolean searchInText, SWF swf) { SearchDialog searchDialog = new SearchDialog(getMainFrame().getWindow(), false); if (searchInText != null) { if (searchInText) { @@ -1664,7 +1660,6 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se if (searchDialog.showDialog() == AppDialog.OK_OPTION) { final String txt = searchDialog.searchField.getText(); if (!txt.isEmpty()) { - final SWF swf = getCurrentSwf(); if (swf.isAS3()) { getABCPanel(); } else { @@ -1681,7 +1676,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se List abcResult = null; List actionResult = null; if (swf.isAS3()) { - abcResult = getABCPanel().search(txt, ignoreCase, regexp, this); + abcResult = getABCPanel().search(swf, txt, ignoreCase, regexp, this); } else { actionResult = getActionPanel().search(txt, ignoreCase, regexp, this); } diff --git a/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java b/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java index cfaf53a6e..242422bf6 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java @@ -182,7 +182,7 @@ public class ABCPanel extends JPanel implements ItemListener, SearchListener search(final String txt, boolean ignoreCase, boolean regexp, CancellableWorker worker) { + public List search(final SWF swf, final String txt, boolean ignoreCase, boolean regexp, CancellableWorker worker) { List ignoredClasses = new ArrayList<>(); List ignoredNss = new ArrayList<>(); @@ -192,7 +192,7 @@ public class ABCPanel extends JPanel implements ItemListener, SearchListener found = new ArrayList<>(); if (scriptsNode instanceof ClassesListTreeModel) { ClassesListTreeModel clModel = (ClassesListTreeModel) scriptsNode; @@ -1088,7 +1088,12 @@ public class ABCPanel extends JPanel implements ItemListener, SearchListener { mainPanel.tagTree.setSelectionPath(tp); mainPanel.tagTree.scrollPathToVisible(tp);