Navigation
API > API/Editor > API/Editor/EditorWidgets
An Asset Filter Bar widget, which can be used to filter items of type [FilterType] given a list of custom filters along with built in support for AssetType filters
Use the GetAllActiveFilters() and GetCombinedBackendFilter() functions to get all the custom and asset filters respectively NOTE: GetCombinedBackendFilter returns an FARFilter, and it is on the user of this widget to compile it/use it to filter their items. If you want more straightforward filtering, look at SFilterBar which streamlines this Use MakeAddFilterButton() to make the button that summons the dropdown showing all the filters Sample Usage: void OnFilterChangedDelegate() { TSharedPtr< TFilterCollection
for(FilterType& MyItem : MyUnfilteredItems) { if(CompileAndRunFARFilter(CombinedBackEndFilter, MyItem) && ActiveFilters.PassesAllFilters(MyItem)) { FilteredItems.Add(MyItem); } } }
| Name | SAssetFilterBar |
| Type | class |
| Header File | /Engine/Source/Editor/EditorWidgets/Public/Filters/SAssetFilterBar.h |
| Include Path | #include "Filters/SAssetFilterBar.h" |
Syntax
template<typename FilterType>
class SAssetFilterBar :
public SBasicFilterBar< FilterType > ,
public FFilterBarBase
Inheritance Hierarchy
- FFilterBarBase → SAssetFilterBar
- FSharedFromThisBase → TSharedFromThis → SWidget → SCompoundWidget → SBasicFilterBar → SAssetFilterBar
- FSlateControlledConstruction → SWidget → SCompoundWidget → SBasicFilterBar → SAssetFilterBar
Derived Classes
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~SAssetFilterBar() |
Filters/SAssetFilterBar.h |
Classes
| Name | Remarks |
|---|---|
| SAssetFilter | A subclass of SFilter in SBasicFilterBar to add functionality for Asset Filters |
Structs
| Name | Remarks |
|---|---|
| FArguments |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| FCreateTextFilter | typename SBasicFilterBar< FilterType >::FCreateTextFilter | Filters/SAssetFilterBar.h | |
| FOnFilterChanged | typename SBasicFilterBar< FilterType >::FOnFilterChanged | Filters/SAssetFilterBar.h | |
| SFilter | SBasicFilterBar< FilterType >::SFilter | Filters/SAssetFilterBar.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| AssetRegistryVersionChangeHandle | FDelegateHandle | Filters/SAssetFilterBar.h | ||
| DefaultMenuExpansionCategory | TOptional< FAssetCategoryPath > | The filter menu category to expand. | Filters/SAssetFilterBar.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void Construct
(
const FArguments& InArgs |
Constructs this widget with InArgs | Filters/SAssetFilterBar.h | |
bool DoesAssetTypeFilterExist
(
const FTopLevelAssetPath& InClassPath |
Check if there is a filter associated with the given class represented by FTopLevelAssetPath in the filter bar | Filters/SAssetFilterBar.h | |
void FilterByType
(
TSharedPtr< FCustomClassFilterData > CustomClassFilterData |
Handler for when filter by type is selected | Filters/SAssetFilterBar.h | |
void FilterByTypeCategory
(
TSharedPtr< FFilterCategory > TypeCategory, |
Handler for when filter by type category is selected | Filters/SAssetFilterBar.h | |
ECheckBoxState GetAssetTypeFilterCheckState
(
const FTopLevelAssetPath& InClassPath |
Returns the check box state of the specified filter (in the filter drop down). | Filters/SAssetFilterBar.h | |
FARFilter GetCombinedBackendFilter() |
Use this function to get an FARFilter that represents all the AssetType filters that are currently active | Filters/SAssetFilterBar.h | |
bool IsAssetTypeFilterActive
(
const FTopLevelAssetPath& InClassPath |
Returns true if the specified filter is both checked (pinned on the filter bar) and active (contributing to filter the result). | Filters/SAssetFilterBar.h | |
virtual void LoadSettings() |
Filters/SAssetFilterBar.h | ||
virtual void SaveSettings() |
Filters/SAssetFilterBar.h | ||
void SetAssetTypeFilterCheckState
(
const FTopLevelAssetPath& InClassPath, |
Set the check box state of the specified filter (in the filter drop down) and pin/unpin a filter widget on/from the filter bar. | Filters/SAssetFilterBar.h | |
void ToggleAssetTypeFilterEnabled
(
const FTopLevelAssetPath& InClassPath, |
If a filter with the input class name is Checked (i.e visible in the bar), enable/disable it | Filters/SAssetFilterBar.h |
Overridden from SBasicFilterBar
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void RemoveAllFilters() |
Remove all filters from the filter bar, while disabling any active ones | Filters/SAssetFilterBar.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
TSharedRef< SFilter > AddAssetFilterToBar
(
const TSharedPtr< FCustomClassFilterData >& CustomClassFilter |
Add an AssetFilter to the toolbar, making it "Active" but not enabled | Filters/SAssetFilterBar.h | |
bool CanPasteFilters() |
Filters/SAssetFilterBar.h | ||
virtual UAssetFilterBarContext * CreateAssetFilterBarContext () |
Override this if you want to change aspects on the add filter menu. | Filters/SAssetFilterBar.h | |
void CreateAssetTypeActionFilters() |
Create the default set of IAssetTypeActions Filters provided with the widget if requested | Filters/SAssetFilterBar.h | |
void CreateFiltersMenuCategory
(
FToolMenuSection& Section, |
Handler for when the add filter menu is populated by a category | Filters/SAssetFilterBar.h | |
void CreateFiltersMenuCategory
(
UToolMenu* InMenu, |
Filters/SAssetFilterBar.h | ||
bool IsClassTypeInUse
(
TSharedPtr< FCustomClassFilterData > Class |
Handler to determine the "checked" state of class filter in the filter dropdown | Filters/SAssetFilterBar.h | |
ECheckBoxState IsTypeCategoryChecked
(
TSharedPtr< FFilterCategory > TypeCategory, |
Handler to determine the "checked" state of an type category in the filter dropdown | Filters/SAssetFilterBar.h | |
bool IsTypeCategoryInUse
(
TSharedPtr< FFilterCategory > TypeCategory, |
Function to check if a given type category is in use | Filters/SAssetFilterBar.h | |
void LoadCustomTextFilters
(
const FFilterBarSettings* FilterBarConfig |
Load all the custom class filters (created by the user) from the specified config | Filters/SAssetFilterBar.h | |
void LoadFilters
(
const FFilterBarSettings* FilterBarConfig |
Load all the custom filters (created programatically) from the specified config | Filters/SAssetFilterBar.h | |
virtual TSharedRef< SWidget > MakeAddFilterMenu() |
Handler for when the add filter button was clicked | Filters/SAssetFilterBar.h | |
void OnCopyFilters() |
Filters/SAssetFilterBar.h | ||
void OnPasteFilters() |
Filters/SAssetFilterBar.h | ||
virtual void PopulateAddFilterMenu
(
UToolMenu* Menu, |
Handler to Populate the Add Filter Menu. | Filters/SAssetFilterBar.h | |
virtual void RemoveAllButThis
(
const TSharedRef< SFilter >& FilterToKeep |
AssetFilter specific override to SBasicFilterBar::RemoveAllButThis | Filters/SAssetFilterBar.h | |
void RemoveAssetFilter
(
const TSharedPtr< FCustomClassFilterData >& CustomClassData, |
Handler for when the remove filter button was clicked on a filter | Filters/SAssetFilterBar.h | |
virtual void RemoveFilter
(
const TSharedRef< SFilter >& FilterToRemove |
Remove a filter from the filter bar | Filters/SAssetFilterBar.h | |
void SaveCustomTextFilters
(
FFilterBarSettings* FilterBarConfig |
Save all the custom class filters (created by the user) into the specified config | Filters/SAssetFilterBar.h | |
void SaveFilters
(
FFilterBarSettings* FilterBarConfig |
Save all the custom filters (created programatically) into the specified config | Filters/SAssetFilterBar.h | |
virtual void SaveSettingsInternal
(
FFilterBarSettings* InSettingsToSave |
Filters/SAssetFilterBar.h |
Overridden from SWidget
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual FReply OnMouseButtonUp
(
const FGeometry& MyGeometry, |
Filters/SAssetFilterBar.h |
See Also
-
SFilterBar in EditorWidgets
-
which is a simplified version of this widget for most use cases which is probably what you want to use
-
SBasicFilterBar in ToolWidgets if you want a simple FilterBar without AssetType Filters (usable in non editor builds)
-
SFilterList in ContentBrowser for an extremely complex example of how to use this widget
-
though for most cases you probably want to use SFilterBar NOTE: The filter functions create copies
-
so you want to use SAssetFilterBar
> etc instead of SAssetFilterBar when possible NOTE: You will need to also add "ToolWidgets" as a dependency to your module to use this widget Sample Usage: SAssignNew(MyFilterBar -
SAssetFilterBar
) .OnFilterChanged() // A delegate for when the list of filters changes .CustomFilters() // An array of filters available to this FilterBar ( -
FGenericFilter to create simple delegate based filters)