diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypeManagerPlugin.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypeManagerPlugin.java index ef439d43cd..677b6b8c70 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypeManagerPlugin.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypeManagerPlugin.java @@ -362,7 +362,12 @@ public class DataTypeManagerPlugin extends ProgramPlugin } public DataTypesProvider createProvider() { - return new DataTypesProvider(this, SEACH_PROVIDER_NAME); + + DataTypesProvider newProvider = new DataTypesProvider(this, SEACH_PROVIDER_NAME); + newProvider.setIncludeDataTypeMembersInFilter(provider.includeDataMembersInSearch()); + newProvider.setFilteringArrays(provider.isFilteringArrays()); + newProvider.setFilteringPointers(provider.isFilteringPointers()); + return newProvider; } public void closeProvider(DataTypesProvider providerToClose) { @@ -617,10 +622,6 @@ public class DataTypeManagerPlugin extends ProgramPlugin dataTypeManagerHandler.setRecentlyUsedDataType(dt); } - public boolean includeDataMembersInSearch() { - return provider.includeDataMembersInSearch(); - } - @Override public void addDataTypeManagerChangeListener(DataTypeManagerChangeListener listener) { dataTypeManagerHandler.addDataTypeManagerChangeListener(listener); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypesProvider.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypesProvider.java index 206d3aa35f..29a06a8991 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypesProvider.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypesProvider.java @@ -781,8 +781,7 @@ public class DataTypesProvider extends ComponentProviderAdapter { } // this is a callback from the action--we need this to prevent callbacks, as the other - // version of this method will try to get the method, which will lazily created it, which - // will trigger a callback... + // version of this method will update the action, which would trigger a callback public void setIncludeDataTypeMembersInFilterCallback(boolean newValue) { includeDataMembersInFilter = newValue; archiveGTree.setIncludeDataTypeMembersInSearch(includeDataMembersInFilter); @@ -800,6 +799,14 @@ public class DataTypesProvider extends ComponentProviderAdapter { } } + public void setFilteringArrays(boolean b) { + archiveGTree.enableArrayFilter(b); + } + + public void setFilteringPointers(boolean b) { + archiveGTree.enablePointerFilter(b); + } + boolean includeDataMembersInSearch() { return includeDataMembersInFilter; } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/FindDataTypesByNameAction.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/FindDataTypesByNameAction.java index 6afa8156a3..ec3c4a6c72 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/FindDataTypesByNameAction.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/FindDataTypesByNameAction.java @@ -56,7 +56,6 @@ public class FindDataTypesByNameAction extends DockingAction { String searchString = inputDialog.getValue(); DataTypesProvider newProvider = plugin.createProvider(); - newProvider.setIncludeDataTypeMembersInFilter(plugin.includeDataMembersInSearch()); newProvider.setTitle(NAME); newProvider.setFilterText(searchString); newProvider.setVisible(true);