diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTreeView.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTreeView.cpp index 026343c2a4..8956d072ad 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTreeView.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTreeView.cpp @@ -185,10 +185,11 @@ namespace AzToolsFramework void AssetBrowserTreeView::rowsAboutToBeRemoved(const QModelIndex& parent, int start, int end) { - // if selected entry is being removed, clear selection so not to select (and attempt to preview) other entries potentially marked for deletion - if (selectionModel() && selectionModel()->selectedIndexes().size() == 1) + // if selected entry is being removed, clear selection so not to select (and attempt to preview) other entries potentially + // marked for deletion + if (selectionModel() && selectedIndexes().size() == 1) { - QModelIndex selectedIndex = selectionModel()->selectedIndexes().first(); + QModelIndex selectedIndex = selectedIndexes().first(); QModelIndex parentSelectedIndex = selectedIndex.parent(); if (parentSelectedIndex == parent && selectedIndex.row() >= start && selectedIndex.row() <= end) { @@ -198,6 +199,14 @@ namespace AzToolsFramework QTreeView::rowsAboutToBeRemoved(parent, start, end); } + // Item data for hidden columns normally isn't copied by Qt during drag-and-drop (see QTBUG-30242). + // However, for the AssetBrowser, the hidden columns should get copied. By overriding selectedIndexes() to + // include all selected indices, not just the visible ones, we can get the behavior we're looking for. + QModelIndexList AssetBrowserTreeView::selectedIndexes() const + { + return selectionModel()->selectedIndexes(); + } + void AssetBrowserTreeView::SetThumbnailContext(const char* thumbnailContext) const { m_delegate->SetThumbnailContext(thumbnailContext); diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTreeView.h b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTreeView.h index 19cbd3745a..867e01d80d 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTreeView.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTreeView.h @@ -95,6 +95,9 @@ namespace AzToolsFramework void selectionChanged(const QItemSelection& selected, const QItemSelection& deselected) override; void rowsAboutToBeRemoved(const QModelIndex& parent, int start, int end) override; + protected: + QModelIndexList selectedIndexes() const override; + private: QPointer m_assetBrowserModel = nullptr; QPointer m_assetBrowserSortFilterProxyModel = nullptr;