Selecting correct indexes from Asset Browser Model

This commit is contained in:
igarri
2021-05-12 12:20:23 +01:00
parent 80684b383b
commit c1e21185b4
4 changed files with 52 additions and 18 deletions
@@ -47,7 +47,7 @@ namespace AzToolsFramework
setMouseTracking(true);
connect(this, &QTableView::customContextMenuRequested, this, &AssetBrowserTableView::OnContextMenu);
connect(m_scTimer, &QTimer::timeout, this, &AssetBrowserTableView::OnUpdateSCThumbnailsList);
//connect(m_scTimer, &QTimer::timeout, this, &AssetBrowserTableView::OnUpdateSCThumbnailsList);
AssetBrowserViewRequestBus::Handler::BusConnect();
AssetBrowserComponentNotificationBus::Handler::BusConnect();
@@ -59,9 +59,9 @@ namespace AzToolsFramework
}
void AssetBrowserTableView::setModel(QAbstractItemModel* model)
{
m_filterModel = qobject_cast<AssetBrowserTableModel*>(model);
AZ_Assert(m_filterModel, "Expecting AssetBrowserTableModel");
m_sourceModel = qobject_cast<AssetBrowserFilterModel*>(m_filterModel->sourceModel());
m_tableModel = qobject_cast<AssetBrowserTableModel*>(model);
AZ_Assert(m_tableModel, "Expecting AssetBrowserTableModel");
m_sourceFilterModel = qobject_cast<AssetBrowserFilterModel*>(m_tableModel->sourceModel());
QTableView::setModel(model);
}
void AssetBrowserTableView::SetName(const QString& name)
@@ -76,14 +76,14 @@ namespace AzToolsFramework
}
AZStd::vector<AssetBrowserEntry*> AssetBrowserTableView::GetSelectedAssets() const
{
QModelIndexList sourceIndexes{};
//for (const auto& index : selectedIndexes())
//{
// sourceIndexes.push_back(m_sourceModel->mapToSource(index));
//}
QModelIndexList sourceIndexes;
for (const auto& index : selectedIndexes())
{
sourceIndexes.push_back(m_sourceFilterModel->mapToSource(m_tableModel->mapToSource(index)));
}
AZStd::vector<AssetBrowserEntry*> entries;
//AssetBrowserModel::SourceIndexesToAssetDatabaseEntries(sourceIndexes, entries);
AssetBrowserModel::SourceIndexesToAssetDatabaseEntries(sourceIndexes, entries);
return entries;
}
void AssetBrowserTableView::selectionChanged(const QItemSelection& selected, const QItemSelection& deselected)
@@ -124,7 +124,7 @@ namespace AzToolsFramework
{
emit ClearStringFilter();
emit ClearTypeFilter();
m_sourceModel->FilterUpdatedSlotImmediate();
m_sourceFilterModel->FilterUpdatedSlotImmediate();
}
void AssetBrowserTableView::Update()
@@ -63,13 +63,10 @@ namespace AzToolsFramework
private:
QString m_name;
QPointer<AssetBrowserTableModel> m_filterModel = nullptr;
QPointer<AssetBrowserFilterModel> m_sourceModel = nullptr;
QPointer<AssetBrowserTableModel> m_tableModel = nullptr;
QPointer<AssetBrowserFilterModel> m_sourceFilterModel = nullptr;
EntryDelegate* m_delegate = nullptr;
QTimer* m_scTimer = nullptr;
const int m_scUpdateInterval = 100;
private Q_SLOTS:
void OnContextMenu(const QPoint& point);
//! Get all visible source entries and place them in a queue to update their source control status