diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/dialogs/ObjectChooserDialog.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/dialogs/ObjectChooserDialog.java index 878f2485dd..f87b8325e4 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/dialogs/ObjectChooserDialog.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/dialogs/ObjectChooserDialog.java @@ -85,4 +85,8 @@ public class ObjectChooserDialog extends DialogComponentProvider { public T getSelectedObject() { return selectedObject; } + + public void setFilterText(String text) { + table.setFilterText(text); + } } diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GFilterTable.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GFilterTable.java index 32a0108432..a7597c88ed 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GFilterTable.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GFilterTable.java @@ -186,4 +186,7 @@ public class GFilterTable extends JPanel { filterPanel.requestFocus(); } + public void setFiterText(String text) { + filterPanel.setFilterText(text); + } } diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableWidget.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableWidget.java index b8a6a2cfb5..f399cc4075 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableWidget.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableWidget.java @@ -219,4 +219,8 @@ public class GTableWidget extends JPanel { public void focusFilter() { gFilterTable.focusFilter(); } + + public void setFilterText(String text) { + gFilterTable.setFiterText(text); + } } diff --git a/Ghidra/Framework/Generic/src/main/java/ghidra/framework/GenericRunInfo.java b/Ghidra/Framework/Generic/src/main/java/ghidra/framework/GenericRunInfo.java index 95a39efb6c..36fddd53e4 100644 --- a/Ghidra/Framework/Generic/src/main/java/ghidra/framework/GenericRunInfo.java +++ b/Ghidra/Framework/Generic/src/main/java/ghidra/framework/GenericRunInfo.java @@ -155,38 +155,44 @@ public class GenericRunInfo { /** * This is the same as {@link #getUserSettingsDirsByTime()} except that it doesn't include the - * current installation or installations with different release names. + * current installation or installations with different release names + * + * @return the list of previous directories, sorted by time */ public static List getPreviousApplicationSettingsDirsByTime() { - List applicationSettiingsDirs = new ArrayList<>(); + List settingsDirs = new ArrayList<>(); ApplicationIdentifier myIdentifier = new ApplicationIdentifier( Application.getApplicationLayout().getApplicationProperties()); + String myRelease = myIdentifier.getApplicationReleaseName(); + String myDirName = Application.getUserSettingsDirectory().getName(); for (File dir : getUserSettingsDirsByTime()) { - String dirName = dir.getName(); // Ignore the currently active user settings directory. // By definition, it is not a previous one. - if (dirName.equals(Application.getUserSettingsDirectory().getName())) { + String dirName = dir.getName(); + if (dirName.equals(myDirName)) { continue; } if (dirName.startsWith(".")) { dirName = dirName.substring(1); } + try { - // The current release name has to match for it to be considered - if (new ApplicationIdentifier(dirName).getApplicationReleaseName().equals( - myIdentifier.getApplicationReleaseName())) { - applicationSettiingsDirs.add(dir); + // The current release name has to match for it to be considered + ApplicationIdentifier identifier = new ApplicationIdentifier(dirName); + String release = identifier.getApplicationReleaseName(); + if (release.equals(myRelease)) { + settingsDirs.add(dir); } } catch (IllegalArgumentException e) { // The directory name didn't contain a valid application identifier...skip it } } - return applicationSettiingsDirs; + return settingsDirs; } /**