Adding Setting to allow the user to choose the max number of items to show in the Search View

Merge pull request #1679 from aws-lumberyard-dev/LYN-4700
This commit is contained in:
hultonha
2021-08-09 12:52:29 +01:00
committed by GitHub
12 changed files with 82 additions and 31 deletions
@@ -186,6 +186,7 @@ namespace AzToolsFramework
}
}
invalidateFilter();
Q_EMIT filterChanged();
}
@@ -205,6 +206,6 @@ namespace AzToolsFramework
}
} // namespace AssetBrowser
} // namespace AzToolsFramework// namespace AssetBrowser
} // namespace AzToolsFramework
#include "AssetBrowser/moc_AssetBrowserFilterModel.cpp"
@@ -134,7 +134,8 @@ namespace AzToolsFramework
{
return 0;
}
//If the column of the parent is one of those we don't want any more rows as children
if (parent.isValid())
{
if ((parent.column() != aznumeric_cast<int>(AssetBrowserEntry::Column::DisplayName)) &&
@@ -90,24 +90,38 @@ namespace AzToolsFramework
const QAbstractItemModel* model, const QModelIndex& parent /*= QModelIndex()*/, int row /*= 0*/)
{
int rows = model ? model->rowCount(parent) : 0;
for (int i = 0; i < rows; ++i)
if (parent == QModelIndex())
{
QModelIndex index = model->index(i, 0, parent);
AssetBrowserEntry* entry = GetAssetEntry(m_filterModel->mapToSource(index));
//We only wanna see the source assets.
if (entry->GetEntryType() == AssetBrowserEntry::AssetEntryType::Source)
{
beginInsertRows(parent, row, row);
m_indexMap[row] = index;
endInsertRows();
m_displayedItemsCounter = 0;
}
Q_EMIT dataChanged(index, index);
++row;
for (int currentRow = 0; currentRow < rows; ++currentRow)
{
if (m_displayedItemsCounter < m_numberOfItemsDisplayed)
{
QModelIndex index = model->index(currentRow, 0, parent);
AssetBrowserEntry* entry = GetAssetEntry(m_filterModel->mapToSource(index));
// We only want to see the source assets.
if (entry->GetEntryType() == AssetBrowserEntry::AssetEntryType::Source)
{
beginInsertRows(parent, row, row);
m_indexMap[row] = index;
endInsertRows();
Q_EMIT dataChanged(index, index);
++row;
++m_displayedItemsCounter;
}
if (model->hasChildren(index))
{
row = BuildTableModelMap(model, index, row);
}
}
if (model->hasChildren(index))
else
{
row = BuildTableModelMap(model, index, row);
break;
}
}
return row;
@@ -135,6 +149,10 @@ namespace AzToolsFramework
m_indexMap.clear();
endRemoveRows();
}
AzToolsFramework::EditorSettingsAPIBus::BroadcastResult(
m_numberOfItemsDisplayed, &AzToolsFramework::EditorSettingsAPIBus::Handler::GetMaxNumberOfItemsShownInSearchView);
BuildTableModelMap(sourceModel());
emit layoutChanged();
}
@@ -12,6 +12,7 @@
#include <QSortFilterProxyModel>
#include <QPointer>
#endif
#include <Editor/EditorSettingsAPIBus.h>
namespace AzToolsFramework
{
@@ -50,6 +51,8 @@ namespace AzToolsFramework
int BuildTableModelMap(const QAbstractItemModel* model, const QModelIndex& parent = QModelIndex(), int row = 0);
private:
int m_numberOfItemsDisplayed = 50;
int m_displayedItemsCounter = 0;
QPointer<AssetBrowserFilterModel> m_filterModel;
QMap<int, QModelIndex> m_indexMap;
};
@@ -6,18 +6,10 @@
*
*/
#include <API/EditorAssetSystemAPI.h>
#include <AzCore/std/containers/vector.h>
#include <AzFramework/StringFunc/StringFunc.h>
#include <AzToolsFramework/AssetBrowser/AssetBrowserBus.h>
#include <AzToolsFramework/AssetBrowser/AssetBrowserFilterModel.h>
#include <AzToolsFramework/AssetBrowser/AssetBrowserModel.h>
#include <AzToolsFramework/AssetBrowser/Entries/AssetBrowserEntryCache.h>
#include <AzToolsFramework/AssetBrowser/Entries/ProductAssetBrowserEntry.h>
#include <AzToolsFramework/AssetBrowser/Entries/SourceAssetBrowserEntry.h>
#include <AzToolsFramework/AssetBrowser/Views/AssetBrowserTableView.h>
#include <AzToolsFramework/AssetBrowser/Views/EntryDelegate.h>
@@ -28,9 +20,7 @@ AZ_PUSH_DISABLE_WARNING(
#include <QCoreApplication>
#include <QHeaderView>
#include <QMenu>
#include <QMouseEvent>
#include <QPainter>
#include <QPen>
#include <QTimer>
AZ_POP_DISABLE_WARNING
namespace AzToolsFramework
@@ -9,7 +9,6 @@
#if !defined(Q_MOC_RUN)
#include <AzCore/Asset/AssetCommon.h>
#include <AzCore/Memory/SystemAllocator.h>
#include <AzCore/std/containers/vector.h>
#include <AzToolsFramework/AssetBrowser/AssetBrowserBus.h>
#include <AzToolsFramework/AssetBrowser/AssetBrowserTableModel.h>
@@ -55,7 +54,6 @@ namespace AzToolsFramework
void OnAssetBrowserComponentReady() override;
//////////////////////////////////////////////////////////////////////////
Q_SIGNALS:
void selectionChangedSignal(const QItemSelection& selected, const QItemSelection& deselected);
void ClearStringFilter();
@@ -38,6 +38,7 @@ namespace AzToolsFramework
virtual SettingOutcome GetValue(const AZStd::string_view path) = 0;
virtual SettingOutcome SetValue(const AZStd::string_view path, const AZStd::any& value) = 0;
virtual ConsoleColorTheme GetConsoleColorTheme() const = 0;
virtual int GetMaxNumberOfItemsShownInSearchView() const = 0;
};
using EditorSettingsAPIBus = AZ::EBus<EditorSettingsAPIRequests>;