Fixing qobject_cast to the StringFilter

This commit is contained in:
igarri
2021-05-17 14:06:01 +01:00
parent d5591e52ff
commit b9c9811d35
3 changed files with 26 additions and 11 deletions
@@ -130,9 +130,7 @@ namespace AzToolsFramework
if (compFilter)
{
auto& subFilters = compFilter->GetSubFilters();
//bool bNoFilters = false;
auto it = AZStd::find_if(subFilters.begin(), subFilters.end(), [subFilters](FilterConstType filter) -> bool
{
auto assetTypeFilter = qobject_cast<QSharedPointer<const CompositeFilter> >(filter);
@@ -142,21 +140,38 @@ namespace AzToolsFramework
{
m_assetTypeFilter = qobject_cast<QSharedPointer<const CompositeFilter> >(*it);
}
it = AZStd::find_if(subFilters.begin(), subFilters.end(), [subFilters](FilterConstType filter) -> bool
it = AZStd::find_if(subFilters.begin(), subFilters.end(), [](FilterConstType filter) -> bool
{
auto stringFilter = qobject_cast<QSharedPointer<const StringFilter> >(filter);
return !stringFilter.isNull();
auto stringCompositeFilter = qobject_cast<QSharedPointer<const CompositeFilter> >(filter);
bool isStringFilter = false;
if (stringCompositeFilter)
{
auto& subFilters = stringCompositeFilter->GetSubFilters();
auto it = AZStd::find_if(subFilters.begin(), subFilters.end(), [](FilterConstType filt) -> bool
{
auto strFilter = qobject_cast<QSharedPointer<const StringFilter>>(filt);
return !strFilter.isNull();
});
if (it != subFilters.end())
{
isStringFilter = true;
}
}
return isStringFilter;
});
if (it != subFilters.end())
{
m_stringFilter = qobject_cast<QSharedPointer<const StringFilter> >(*it);
emit switchFilterView(m_stringFilter.toStrongRef()->IsEmpty());
auto compStringFilter = qobject_cast<QSharedPointer<const CompositeFilter>>(*it);
m_stringFilter = qobject_cast<QSharedPointer<const StringFilter>>(compStringFilter->GetSubFilters()[0]);
}
}
invalidateFilter();
Q_EMIT filterChanged();
emit stringFilterPopulated(!m_stringFilter.isNull());
}
void AssetBrowserFilterModel::filterUpdatedSlot()
@@ -52,7 +52,7 @@ namespace AzToolsFramework
void OnAssetBrowserComponentReady() override;
Q_SIGNALS:
void switchFilterView(int);
void stringFilterPopulated(bool);
void filterChanged();
//////////////////////////////////////////////////////////////////////////
//QSortFilterProxyModel
@@ -97,7 +97,6 @@ AzAssetBrowserWindow::AzAssetBrowserWindow(QWidget* parent)
});
connect(m_filterModel.data(), &AssetBrowserFilterModel::filterChanged, m_tableModel.data(), &AssetBrowserTableModel::UpdateTableModelMaps);
connect(m_filterModel.data(), &AssetBrowserFilterModel::switchFilterView, this, &AzAssetBrowserWindow::SwitchDisplayView);
connect(m_ui->m_assetBrowserTreeViewWidget, &AssetBrowserTreeView::selectionChangedSignal,
this, &AzAssetBrowserWindow::SelectionChangedSlot);
@@ -119,6 +118,7 @@ AzAssetBrowserWindow::AzAssetBrowserWindow(QWidget* parent)
m_ui->m_assetBrowserTreeViewWidget->SetName("AssetBrowserTreeView_main");
m_ui->m_assetBrowserTableViewWidget->SetName("AssetBrowserTableView_main");
connect(m_filterModel.data(), &AssetBrowserFilterModel::stringFilterPopulated, this, &AzAssetBrowserWindow::SwitchDisplayView);
connect(m_ui->m_viewSwitcherCheckBox, &QCheckBox::stateChanged, this, &AzAssetBrowserWindow::SwitchDisplayView);
}