Merge pull request #376 from aws-lumberyard-dev/Atom/guthadam/ATOM-15372

ATOM-15372 Restoring material browser filter logic
This commit is contained in:
Guthrie Adams
2021-04-28 11:00:45 -05:00
committed by GitHub
@@ -110,30 +110,19 @@ namespace MaterialEditor
{
using namespace AzToolsFramework::AssetBrowser;
// Material Browser uses the following filters:
// 1. [All source files (no products) that contain products matching the assetType specified by searchWidget (default is materials and textures)]
// 2. [All folders (including empty folders)]
// 3. [All Sources and folders matching the search text typed in search widget]
// Final filter = ((1 OR 2) AND 3)
QSharedPointer<EntryTypeFilter> sourceFilter(new EntryTypeFilter);
sourceFilter->SetEntryType(AssetBrowserEntry::AssetEntryType::Source);
QSharedPointer<CompositeFilter> assetTypeFilter(new CompositeFilter(CompositeFilter::LogicOperatorType::AND));
assetTypeFilter->AddFilter(sourceFilter);
assetTypeFilter->AddFilter(m_ui->m_searchWidget->GetTypesFilter());
QSharedPointer<EntryTypeFilter> folderFilter(new EntryTypeFilter);
folderFilter->SetEntryType(AssetBrowserEntry::AssetEntryType::Folder);
QSharedPointer<CompositeFilter> sourceOrFolderFilter(new CompositeFilter(CompositeFilter::LogicOperatorType::OR));
sourceOrFolderFilter->AddFilter(assetTypeFilter);
sourceOrFolderFilter->AddFilter(sourceFilter);
sourceOrFolderFilter->AddFilter(folderFilter);
QSharedPointer<CompositeFilter> finalFilter(new CompositeFilter(CompositeFilter::LogicOperatorType::AND));
finalFilter->AddFilter(sourceOrFolderFilter);
finalFilter->AddFilter(m_ui->m_searchWidget->GetStringFilter());
finalFilter->SetFilterPropagation(AssetBrowserEntryFilter::PropagateDirection::Down);
finalFilter->AddFilter(m_ui->m_searchWidget->GetFilter());
return finalFilter;
}