LYN-1767: Search View Crash Fix (#1430)

* Fixed crash in tableView when the filter goes empty and there is a selected entry.

* fixed consts

* Code Review Changes

* more minor fixes
This commit is contained in:
IgnacioMartinezGarrido
2021-06-21 09:49:01 +01:00
committed by GitHub
parent 8459855395
commit e4e22879b8
6 changed files with 77 additions and 66 deletions
@@ -90,8 +90,14 @@ AzAssetBrowserWindow::AzAssetBrowserWindow(QWidget* parent)
m_tableModel->setSourceModel(m_filterModel.data());
m_ui->m_assetBrowserTableViewWidget->setModel(m_tableModel.data());
connect(
m_filterModel.data(), &AzAssetBrowser::AssetBrowserFilterModel::filterChanged, m_tableModel.data(),
&AzAssetBrowser::AssetBrowserTableModel::UpdateTableModelMaps);
m_filterModel.data(), &AzAssetBrowser::AssetBrowserFilterModel::filterChanged, this,
[this]()
{
if (!m_ui->m_searchWidget->GetFilterString().isEmpty())
{
m_tableModel->UpdateTableModelMaps();
}
});
connect(
m_ui->m_assetBrowserTableViewWidget, &AzAssetBrowser::AssetBrowserTableView::selectionChangedSignal, this,
&AzAssetBrowserWindow::SelectionChangedSlot);
@@ -107,8 +113,21 @@ AzAssetBrowserWindow::AzAssetBrowserWindow(QWidget* parent)
m_ui->m_assetBrowserTableViewWidget->SetName("AssetBrowserTableView_main");
connect(m_filterModel.data(), &AzAssetBrowser::AssetBrowserFilterModel::stringFilterPopulated, this, &AzAssetBrowserWindow::SwitchDisplayView);
connect(m_ui->m_viewSwitcherCheckBox, &QCheckBox::stateChanged, this, &AzAssetBrowserWindow::LockToDefaultView);
connect(
m_filterModel.data(), &AzAssetBrowser::AssetBrowserFilterModel::filterChanged, this,
[this]()
{
const bool hasFilter = !m_ui->m_searchWidget->GetFilterString().isEmpty();
m_ui->m_assetBrowserTableViewWidget->setVisible(hasFilter);
m_ui->m_assetBrowserTreeViewWidget->setVisible(!hasFilter);
});
connect(
m_ui->m_viewSwitcherCheckBox, &QCheckBox::stateChanged, this,
[this](bool visible)
{
m_ui->m_assetBrowserTableViewWidget->setVisible(visible);
m_ui->m_assetBrowserTreeViewWidget->setVisible(!visible);
});
}
m_ui->m_assetBrowserTreeViewWidget->setModel(m_filterModel.data());
@@ -272,25 +291,4 @@ void AzAssetBrowserWindow::DoubleClickedItem([[maybe_unused]] const QModelIndex&
}
}
void AzAssetBrowserWindow::SwitchDisplayView(bool state)
{
m_ui->m_assetBrowserTableViewWidget->setVisible(state);
m_ui->m_assetBrowserTreeViewWidget->setVisible(!state);
}
void AzAssetBrowserWindow::LockToDefaultView(bool state)
{
using AzToolsFramework::AssetBrowser::AssetBrowserFilterModel;
SwitchDisplayView(!state);
if (state == true)
{
disconnect(
m_filterModel.data(), &AssetBrowserFilterModel::stringFilterPopulated, this, &AzAssetBrowserWindow::SwitchDisplayView);
}
else
{
connect(m_filterModel.data(), &AssetBrowserFilterModel::stringFilterPopulated, this, &AzAssetBrowserWindow::SwitchDisplayView);
}
}
#include <AzAssetBrowser/moc_AzAssetBrowserWindow.cpp>
@@ -63,8 +63,6 @@ private:
private Q_SLOTS:
void SelectionChangedSlot(const QItemSelection& selected, const QItemSelection& deselected) const;
void DoubleClickedItem(const QModelIndex& element);
void SwitchDisplayView(bool state);
void LockToDefaultView(bool state);
};
extern const char* AZ_ASSET_BROWSER_PREVIEW_NAME;