From 5d6ab2699cfda84a77134475930652e1fc649d33 Mon Sep 17 00:00:00 2001 From: igarri Date: Wed, 16 Jun 2021 11:48:59 +0100 Subject: [PATCH 01/10] First Performance pass Signed-off-by: igarri --- .../AssetBrowser/AssetBrowserFilterModel.cpp | 3 +- .../AssetBrowser/AssetBrowserModel.cpp | 3 +- .../AssetBrowser/AssetBrowserTableModel.cpp | 56 +++++++++++++++---- .../AssetBrowser/AssetBrowserTableModel.h | 2 + .../Views/AssetBrowserTableView.cpp | 18 +++--- .../Views/AssetBrowserTableView.h | 2 - .../AzAssetBrowser/AzAssetBrowserWindow.cpp | 2 + .../Editor/EditorPreferencesPageFiles.cpp | 21 ++++++- .../Editor/EditorPreferencesPageFiles.h | 7 +++ Code/Sandbox/Editor/Settings.cpp | 2 + Code/Sandbox/Editor/Settings.h | 7 +++ 11 files changed, 96 insertions(+), 27 deletions(-) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserFilterModel.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserFilterModel.cpp index 9bbdbc8442..3191c9ee8f 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserFilterModel.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserFilterModel.cpp @@ -185,6 +185,7 @@ namespace AzToolsFramework } } invalidateFilter(); + Q_EMIT filterChanged(); } @@ -204,6 +205,6 @@ namespace AzToolsFramework } } // namespace AssetBrowser -} // namespace AzToolsFramework// namespace AssetBrowser +} // namespace AzToolsFramework #include "AssetBrowser/moc_AssetBrowserFilterModel.cpp" diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserModel.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserModel.cpp index 069ac6de84..5d215f1b97 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserModel.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserModel.cpp @@ -133,7 +133,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(AssetBrowserEntry::Column::DisplayName)) && diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp index e03b1116c3..dcd8bb1cf6 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp @@ -14,6 +14,7 @@ namespace AzToolsFramework { AssetBrowserTableModel::AssetBrowserTableModel(QObject* parent /* = nullptr */) : QSortFilterProxyModel(parent) + , m_numberOfItemsDisplayed(200) { setDynamicSortFilter(false); } @@ -88,25 +89,40 @@ namespace AzToolsFramework int AssetBrowserTableModel::BuildTableModelMap( const QAbstractItemModel* model, const QModelIndex& parent /*= QModelIndex()*/, int row /*= 0*/) { + static int cont = 0; int rows = model ? model->rowCount(parent) : 0; + + if (parent == QModelIndex()) + { + cont = 0; + } + for (int i = 0; i < rows; ++i) { - 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) + if (cont < m_numberOfItemsDisplayed) { - beginInsertRows(parent, row, row); - m_indexMap[row] = index; - endInsertRows(); + 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(); - Q_EMIT dataChanged(index, index); - ++row; + Q_EMIT dataChanged(index, index); + ++row; + ++cont; + } + + if (model->hasChildren(index) && cont < 10) + { + row = BuildTableModelMap(model, index, row); + } } - - if (model->hasChildren(index)) + else { - row = BuildTableModelMap(model, index, row); + break; } } return row; @@ -134,6 +150,22 @@ namespace AzToolsFramework m_indexMap.clear(); endRemoveRows(); } + + AzToolsFramework::EditorSettingsAPIRequests::SettingOutcome outcome; + AzToolsFramework::EditorSettingsAPIBus::BroadcastResult(outcome, &AzToolsFramework::EditorSettingsAPIBus::Handler::GetValue, + "Settings|MaxDisplayedItemsNumInSearch"); + //AzToolsFramework::EditorSettingsAPIBus::BroadcastResult( + // outcome, &AzToolsFramework::EditorSettingsAPIBus::Handler::GetValue, + // "Settings\ExperimentalFeatures|TotalIlluminationEnabled"); + + AZStd::any* outcomeValue = &outcome.GetValue(); + //bool trr = false; + if (outcomeValue->is() == true) + { + m_numberOfItemsDisplayed = AZStd::any_cast(*outcomeValue); + //trr = AZStd::any_cast(outcomeValue); + } + BuildTableModelMap(sourceModel()); emit layoutChanged(); } diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.h b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.h index 3ce6543f6f..5395512dae 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.h @@ -11,6 +11,7 @@ #include #include #endif +#include namespace AzToolsFramework { @@ -49,6 +50,7 @@ namespace AzToolsFramework int BuildTableModelMap(const QAbstractItemModel* model, const QModelIndex& parent = QModelIndex(), int row = 0); private: + int m_numberOfItemsDisplayed; QPointer m_filterModel; QMap m_indexMap; }; diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTableView.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTableView.cpp index 20e3d307ea..924d73433d 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTableView.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTableView.cpp @@ -5,18 +5,18 @@ * */ -#include +//#include -#include +//#include -#include +//#include #include #include #include -#include -#include -#include +//#include +//#include +//#include #include #include @@ -27,9 +27,9 @@ AZ_PUSH_DISABLE_WARNING( #include #include #include -#include -#include -#include +//#include +//#include +//#include #include AZ_POP_DISABLE_WARNING namespace AzToolsFramework diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTableView.h b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTableView.h index 7e1c8c9ab4..4df87e6e3f 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTableView.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTableView.h @@ -8,7 +8,6 @@ #if !defined(Q_MOC_RUN) #include #include -#include #include #include @@ -54,7 +53,6 @@ namespace AzToolsFramework void OnAssetBrowserComponentReady() override; ////////////////////////////////////////////////////////////////////////// - Q_SIGNALS: void selectionChangedSignal(const QItemSelection& selected, const QItemSelection& deselected); void ClearStringFilter(); diff --git a/Code/Sandbox/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp b/Code/Sandbox/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp index 2a5f853e9b..52721a6162 100644 --- a/Code/Sandbox/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp +++ b/Code/Sandbox/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp @@ -78,6 +78,8 @@ AzAssetBrowserWindow::AzAssetBrowserWindow(QWidget* parent) m_ui->m_viewSwitcherCheckBox->setVisible(false); m_ui->m_assetBrowserTableViewWidget->setVisible(false); + m_ui->m_searchWidget->SetFilterInputInterval(AZStd::chrono::milliseconds(350)); + if (ed_useNewAssetBrowserTableView) { m_ui->m_viewSwitcherCheckBox->setVisible(true); diff --git a/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp b/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp index c09c3441df..cba3888bd1 100644 --- a/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp +++ b/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp @@ -42,11 +42,17 @@ void CEditorPreferencesPage_Files::Reflect(AZ::SerializeContext& serialize) ->Field("MaxCount", &AutoBackup::m_maxCount) ->Field("RemindTime", &AutoBackup::m_remindTime); + serialize + .Class() + ->Version(1) + ->Field("Max number of items displayed", &AssetBrowserSearch::m_numOfItemsShown); + serialize.Class() ->Version(1) ->Field("Files", &CEditorPreferencesPage_Files::m_files) ->Field("Editors", &CEditorPreferencesPage_Files::m_editors) - ->Field("AutoBackup", &CEditorPreferencesPage_Files::m_autoBackup); + ->Field("AutoBackup", &CEditorPreferencesPage_Files::m_autoBackup) + ->Field("Asset Browser Search", &CEditorPreferencesPage_Files::m_assetBrowserSearch); AZ::EditContext* editContext = serialize.GetEditContext(); @@ -79,12 +85,19 @@ void CEditorPreferencesPage_Files::Reflect(AZ::SerializeContext& serialize) ->Attribute(AZ::Edit::Attributes::Max, 100) ->DataElement(AZ::Edit::UIHandlers::SpinBox, &AutoBackup::m_remindTime, "Remind Time", "Auto Remind Every (Minutes)"); + editContext->Class("Asset Browser Search View", "Asset Browser Search View") + ->DataElement(AZ::Edit::UIHandlers::SpinBox, &AssetBrowserSearch::m_numOfItemsShown, "Maximum number of displayed items", + "Maximum number of displayed items displayed in the Search View") + ->Attribute(AZ::Edit::Attributes::Min, 200) + ->Attribute(AZ::Edit::Attributes::Max, 1000); + editContext->Class("File Preferences", "Class for handling File Preferences") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Visibility, AZ_CRC("PropertyVisibility_ShowChildrenOnly", 0xef428f20)) ->DataElement(AZ::Edit::UIHandlers::Default, &CEditorPreferencesPage_Files::m_files, "Files", "File Preferences") ->DataElement(AZ::Edit::UIHandlers::Default, &CEditorPreferencesPage_Files::m_editors, "External Editors", "External Editors") - ->DataElement(AZ::Edit::UIHandlers::Default, &CEditorPreferencesPage_Files::m_autoBackup, "Auto Backup", "Auto Backup"); + ->DataElement(AZ::Edit::UIHandlers::Default, &CEditorPreferencesPage_Files::m_autoBackup, "Auto Backup", "Auto Backup") + ->DataElement(AZ::Edit::UIHandlers::Default, &CEditorPreferencesPage_Files::m_assetBrowserSearch, "Asset Browser Search", "Asset Browser Search"); } } @@ -123,6 +136,8 @@ void CEditorPreferencesPage_Files::OnApply() gSettings.autoBackupTime = m_autoBackup.m_timeInterval; gSettings.autoBackupMaxCount = m_autoBackup.m_maxCount; gSettings.autoRemindTime = m_autoBackup.m_remindTime; + + gSettings.numberOfItemsShownInSearch = m_assetBrowserSearch.m_numOfItemsShown; } void CEditorPreferencesPage_Files::InitializeSettings() @@ -147,4 +162,6 @@ void CEditorPreferencesPage_Files::InitializeSettings() m_autoBackup.m_timeInterval = gSettings.autoBackupTime; m_autoBackup.m_maxCount = gSettings.autoBackupMaxCount; m_autoBackup.m_remindTime = gSettings.autoRemindTime; + + m_assetBrowserSearch.m_numOfItemsShown = gSettings.numberOfItemsShownInSearch; } diff --git a/Code/Sandbox/Editor/EditorPreferencesPageFiles.h b/Code/Sandbox/Editor/EditorPreferencesPageFiles.h index 44bcb3ba8d..2e27cd3c3e 100644 --- a/Code/Sandbox/Editor/EditorPreferencesPageFiles.h +++ b/Code/Sandbox/Editor/EditorPreferencesPageFiles.h @@ -68,10 +68,17 @@ private: int m_remindTime; }; + struct AssetBrowserSearch + { + AZ_TYPE_INFO(AssetBrowserSearch, "{9FBFCD24-9452-49DF-99F4-2711443CEAAE}") + + int m_numOfItemsShown; + }; Files m_files; ExternalEditors m_editors; AutoBackup m_autoBackup; + AssetBrowserSearch m_assetBrowserSearch; QIcon m_icon; }; diff --git a/Code/Sandbox/Editor/Settings.cpp b/Code/Sandbox/Editor/Settings.cpp index bf699c842c..c1929119fb 100644 --- a/Code/Sandbox/Editor/Settings.cpp +++ b/Code/Sandbox/Editor/Settings.cpp @@ -498,6 +498,7 @@ void SEditorSettings::Save() SaveValue("Settings", "AutoBackupTime", autoBackupTime); SaveValue("Settings", "AutoBackupMaxCount", autoBackupMaxCount); SaveValue("Settings", "AutoRemindTime", autoRemindTime); + SaveValue("Settings", "MaxDisplayedItemsNumInSearch", numberOfItemsShownInSearch); SaveValue("Settings", "CameraMoveSpeed", cameraMoveSpeed); SaveValue("Settings", "CameraRotateSpeed", cameraRotateSpeed); SaveValue("Settings", "StylusMode", stylusMode); @@ -710,6 +711,7 @@ void SEditorSettings::Load() LoadValue("Settings", "AutoBackupTime", autoBackupTime); LoadValue("Settings", "AutoBackupMaxCount", autoBackupMaxCount); LoadValue("Settings", "AutoRemindTime", autoRemindTime); + LoadValue("Settings", "MaxDisplayedItemsNumInSearch", numberOfItemsShownInSearch); LoadValue("Settings", "CameraMoveSpeed", cameraMoveSpeed); LoadValue("Settings", "CameraRotateSpeed", cameraRotateSpeed); LoadValue("Settings", "StylusMode", stylusMode); diff --git a/Code/Sandbox/Editor/Settings.h b/Code/Sandbox/Editor/Settings.h index 7618a11485..9591695248 100644 --- a/Code/Sandbox/Editor/Settings.h +++ b/Code/Sandbox/Editor/Settings.h @@ -377,6 +377,13 @@ AZ_POP_DISABLE_DLL_EXPORT_BASECLASS_WARNING int autoRemindTime; ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + // Asset Browser Search View. + ////////////////////////////////////////////////////////////////////////// + //! Current maximum number of items that can be displayed in the AssetBrowser Search View. + int numberOfItemsShownInSearch; + ////////////////////////////////////////////////////////////////////////// + //! If true preview windows is displayed when browsing geometries. bool bPreviewGeometryWindow; From c061802ab0ed017c566b042f675557c959b0151d Mon Sep 17 00:00:00 2001 From: igarri Date: Mon, 21 Jun 2021 13:18:51 +0100 Subject: [PATCH 02/10] Retrieving data from preferences Signed-off-by: igarri --- .../AssetBrowser/AssetBrowserTableModel.cpp | 23 ++++++++++--------- .../Editor/EditorSettingsAPIBus.h | 1 + .../AzAssetBrowser/AzAssetBrowserWindow.cpp | 2 +- .../Editor/EditorPreferencesPageFiles.cpp | 2 +- Code/Sandbox/Editor/Settings.cpp | 5 ++++ Code/Sandbox/Editor/Settings.h | 1 + 6 files changed, 21 insertions(+), 13 deletions(-) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp index dcd8bb1cf6..d76ee9b515 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp @@ -8,6 +8,8 @@ #include #include +#pragma optimize("", off) + namespace AzToolsFramework { namespace AssetBrowser @@ -151,24 +153,23 @@ namespace AzToolsFramework endRemoveRows(); } - AzToolsFramework::EditorSettingsAPIRequests::SettingOutcome outcome; - AzToolsFramework::EditorSettingsAPIBus::BroadcastResult(outcome, &AzToolsFramework::EditorSettingsAPIBus::Handler::GetValue, - "Settings|MaxDisplayedItemsNumInSearch"); - //AzToolsFramework::EditorSettingsAPIBus::BroadcastResult( - // outcome, &AzToolsFramework::EditorSettingsAPIBus::Handler::GetValue, - // "Settings\ExperimentalFeatures|TotalIlluminationEnabled"); + AzToolsFramework::EditorSettingsAPIRequests::SettingOutcome outcome; + AzToolsFramework::EditorSettingsAPIBus::BroadcastResult(outcome, &AzToolsFramework::EditorSettingsAPIBus::Handler::GetValue, + "Settings|MaxDisplayedItemsNumInSearch"); - AZStd::any* outcomeValue = &outcome.GetValue(); - //bool trr = false; - if (outcomeValue->is() == true) + AZStd::any outcomeValue = outcome.GetValue(); + if (outcomeValue.is() == true) { - m_numberOfItemsDisplayed = AZStd::any_cast(*outcomeValue); - //trr = AZStd::any_cast(outcomeValue); + m_numberOfItemsDisplayed = AZStd::any_cast(outcome.GetValue()); } + AzToolsFramework::EditorSettingsAPIBus::BroadcastResult( + m_numberOfItemsDisplayed, &AzToolsFramework::EditorSettingsAPIBus::Handler::GetMaxNumberOfItemsShownInSearchView); + BuildTableModelMap(sourceModel()); emit layoutChanged(); } } // namespace AssetBrowser } // namespace AzToolsFramework #include "AssetBrowser/moc_AssetBrowserTableModel.cpp" +#pragma optimize("", on) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Editor/EditorSettingsAPIBus.h b/Code/Framework/AzToolsFramework/AzToolsFramework/Editor/EditorSettingsAPIBus.h index 4f037b870a..ce45577335 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Editor/EditorSettingsAPIBus.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Editor/EditorSettingsAPIBus.h @@ -37,6 +37,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; diff --git a/Code/Sandbox/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp b/Code/Sandbox/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp index 52721a6162..f16f0e362b 100644 --- a/Code/Sandbox/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp +++ b/Code/Sandbox/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp @@ -78,7 +78,7 @@ AzAssetBrowserWindow::AzAssetBrowserWindow(QWidget* parent) m_ui->m_viewSwitcherCheckBox->setVisible(false); m_ui->m_assetBrowserTableViewWidget->setVisible(false); - m_ui->m_searchWidget->SetFilterInputInterval(AZStd::chrono::milliseconds(350)); + m_ui->m_searchWidget->SetFilterInputInterval(AZStd::chrono::milliseconds(250)); if (ed_useNewAssetBrowserTableView) { diff --git a/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp b/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp index cba3888bd1..7833ccdf88 100644 --- a/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp +++ b/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp @@ -88,7 +88,7 @@ void CEditorPreferencesPage_Files::Reflect(AZ::SerializeContext& serialize) editContext->Class("Asset Browser Search View", "Asset Browser Search View") ->DataElement(AZ::Edit::UIHandlers::SpinBox, &AssetBrowserSearch::m_numOfItemsShown, "Maximum number of displayed items", "Maximum number of displayed items displayed in the Search View") - ->Attribute(AZ::Edit::Attributes::Min, 200) + ->Attribute(AZ::Edit::Attributes::Min, 10) ->Attribute(AZ::Edit::Attributes::Max, 1000); editContext->Class("File Preferences", "Class for handling File Preferences") diff --git a/Code/Sandbox/Editor/Settings.cpp b/Code/Sandbox/Editor/Settings.cpp index c1929119fb..398ad5f5cb 100644 --- a/Code/Sandbox/Editor/Settings.cpp +++ b/Code/Sandbox/Editor/Settings.cpp @@ -1205,3 +1205,8 @@ AzToolsFramework::ConsoleColorTheme SEditorSettings::GetConsoleColorTheme() cons { return consoleBackgroundColorTheme; } + +int SEditorSettings::GetMaxNumberOfItemsShownInSearchView() const +{ + return SEditorSettings::numberOfItemsShownInSearch; +} diff --git a/Code/Sandbox/Editor/Settings.h b/Code/Sandbox/Editor/Settings.h index 9591695248..ee6aa24ca5 100644 --- a/Code/Sandbox/Editor/Settings.h +++ b/Code/Sandbox/Editor/Settings.h @@ -302,6 +302,7 @@ AZ_POP_DISABLE_DLL_EXPORT_BASECLASS_WARNING SettingOutcome GetValue(const AZStd::string_view path) override; SettingOutcome SetValue(const AZStd::string_view path, const AZStd::any& value) override; AzToolsFramework::ConsoleColorTheme GetConsoleColorTheme() const override; + int GetMaxNumberOfItemsShownInSearchView() const override; void ConvertPath(const AZStd::string_view sourcePath, AZStd::string& category, AZStd::string& attribute); From 514f9ef6c2b373d5c5c821d641cc87f69ba8715f Mon Sep 17 00:00:00 2001 From: igarri Date: Fri, 25 Jun 2021 10:37:39 +0100 Subject: [PATCH 03/10] Adjusted parameters Signed-off-by: igarri --- .../AssetBrowser/AssetBrowserTableModel.cpp | 10 ---------- .../Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp | 2 +- Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp | 2 +- 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp index d76ee9b515..0a2a1954f4 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp @@ -153,16 +153,6 @@ namespace AzToolsFramework endRemoveRows(); } - AzToolsFramework::EditorSettingsAPIRequests::SettingOutcome outcome; - AzToolsFramework::EditorSettingsAPIBus::BroadcastResult(outcome, &AzToolsFramework::EditorSettingsAPIBus::Handler::GetValue, - "Settings|MaxDisplayedItemsNumInSearch"); - - AZStd::any outcomeValue = outcome.GetValue(); - if (outcomeValue.is() == true) - { - m_numberOfItemsDisplayed = AZStd::any_cast(outcome.GetValue()); - } - AzToolsFramework::EditorSettingsAPIBus::BroadcastResult( m_numberOfItemsDisplayed, &AzToolsFramework::EditorSettingsAPIBus::Handler::GetMaxNumberOfItemsShownInSearchView); diff --git a/Code/Sandbox/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp b/Code/Sandbox/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp index f16f0e362b..c131f62fc6 100644 --- a/Code/Sandbox/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp +++ b/Code/Sandbox/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp @@ -82,7 +82,7 @@ AzAssetBrowserWindow::AzAssetBrowserWindow(QWidget* parent) if (ed_useNewAssetBrowserTableView) { - m_ui->m_viewSwitcherCheckBox->setVisible(true); + m_ui->m_viewSwitcherCheckBox->setVisible(false); m_tableModel->setFilterRole(Qt::DisplayRole); m_tableModel->setSourceModel(m_filterModel.data()); m_ui->m_assetBrowserTableViewWidget->setModel(m_tableModel.data()); diff --git a/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp b/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp index 7833ccdf88..d4e7378d2b 100644 --- a/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp +++ b/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp @@ -88,7 +88,7 @@ void CEditorPreferencesPage_Files::Reflect(AZ::SerializeContext& serialize) editContext->Class("Asset Browser Search View", "Asset Browser Search View") ->DataElement(AZ::Edit::UIHandlers::SpinBox, &AssetBrowserSearch::m_numOfItemsShown, "Maximum number of displayed items", "Maximum number of displayed items displayed in the Search View") - ->Attribute(AZ::Edit::Attributes::Min, 10) + ->Attribute(AZ::Edit::Attributes::Min, 100) ->Attribute(AZ::Edit::Attributes::Max, 1000); editContext->Class("File Preferences", "Class for handling File Preferences") From a07445c2da041624c0d54adc09b62497bf63c4ec Mon Sep 17 00:00:00 2001 From: igarri Date: Wed, 30 Jun 2021 13:45:34 +0100 Subject: [PATCH 04/10] Cleanup and removed optimize Signed-off-by: igarri --- .../AssetBrowser/AssetBrowserTableModel.cpp | 3 --- .../AssetBrowser/Views/AssetBrowserTableView.cpp | 12 +----------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp index 0a2a1954f4..1c4f141f38 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp @@ -8,8 +8,6 @@ #include #include -#pragma optimize("", off) - namespace AzToolsFramework { namespace AssetBrowser @@ -162,4 +160,3 @@ namespace AzToolsFramework } // namespace AssetBrowser } // namespace AzToolsFramework #include "AssetBrowser/moc_AssetBrowserTableModel.cpp" -#pragma optimize("", on) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTableView.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTableView.cpp index 924d73433d..2840523683 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTableView.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/AssetBrowserTableView.cpp @@ -5,18 +5,10 @@ * */ -//#include - -//#include - -//#include #include #include #include -//#include -//#include -//#include #include #include @@ -27,9 +19,7 @@ AZ_PUSH_DISABLE_WARNING( #include #include #include -//#include -//#include -//#include + #include AZ_POP_DISABLE_WARNING namespace AzToolsFramework From b0ddd938245e406081f341cc635a40481a5a429d Mon Sep 17 00:00:00 2001 From: igarri Date: Wed, 30 Jun 2021 15:16:23 +0100 Subject: [PATCH 05/10] Code cleanup and review changes Signed-off-by: igarri --- .../AssetBrowser/AssetBrowserTableModel.cpp | 13 +++++-------- .../Sandbox/Editor/EditorPreferencesPageFiles.cpp | 15 +++++++-------- Code/Sandbox/Editor/EditorPreferencesPageFiles.h | 2 +- Code/Sandbox/Editor/Settings.cpp | 6 +++--- Code/Sandbox/Editor/Settings.h | 2 +- 5 files changed, 17 insertions(+), 21 deletions(-) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp index 1c4f141f38..2cf5b13c91 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp @@ -89,17 +89,17 @@ namespace AzToolsFramework int AssetBrowserTableModel::BuildTableModelMap( const QAbstractItemModel* model, const QModelIndex& parent /*= QModelIndex()*/, int row /*= 0*/) { - static int cont = 0; + static int displayedItemsCounter = 0; int rows = model ? model->rowCount(parent) : 0; if (parent == QModelIndex()) { - cont = 0; + displayedItemsCounter = 0; } for (int i = 0; i < rows; ++i) { - if (cont < m_numberOfItemsDisplayed) + if (displayedItemsCounter < m_numberOfItemsDisplayed) { QModelIndex index = model->index(i, 0, parent); AssetBrowserEntry* entry = GetAssetEntry(m_filterModel->mapToSource(index)); @@ -112,18 +112,15 @@ namespace AzToolsFramework Q_EMIT dataChanged(index, index); ++row; - ++cont; + ++displayedItemsCounter; } - if (model->hasChildren(index) && cont < 10) + if (model->hasChildren(index)) { row = BuildTableModelMap(model, index, row); } } - else - { break; - } } return row; } diff --git a/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp b/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp index d4e7378d2b..f6333b9a76 100644 --- a/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp +++ b/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp @@ -42,10 +42,9 @@ void CEditorPreferencesPage_Files::Reflect(AZ::SerializeContext& serialize) ->Field("MaxCount", &AutoBackup::m_maxCount) ->Field("RemindTime", &AutoBackup::m_remindTime); - serialize - .Class() + serialize.Class() ->Version(1) - ->Field("Max number of items displayed", &AssetBrowserSearch::m_numOfItemsShown); + ->Field("Max number of items displayed", &AssetBrowserSearch::m_maxNumberOfItemsShownInSearch); serialize.Class() ->Version(1) @@ -86,10 +85,10 @@ void CEditorPreferencesPage_Files::Reflect(AZ::SerializeContext& serialize) ->DataElement(AZ::Edit::UIHandlers::SpinBox, &AutoBackup::m_remindTime, "Remind Time", "Auto Remind Every (Minutes)"); editContext->Class("Asset Browser Search View", "Asset Browser Search View") - ->DataElement(AZ::Edit::UIHandlers::SpinBox, &AssetBrowserSearch::m_numOfItemsShown, "Maximum number of displayed items", + ->DataElement(AZ::Edit::UIHandlers::SpinBox, &AssetBrowserSearch::m_maxNumberOfItemsShownInSearch, "Maximum number of displayed items", "Maximum number of displayed items displayed in the Search View") - ->Attribute(AZ::Edit::Attributes::Min, 100) - ->Attribute(AZ::Edit::Attributes::Max, 1000); + ->Attribute(AZ::Edit::Attributes::Min, 50) + ->Attribute(AZ::Edit::Attributes::Max, 5000); editContext->Class("File Preferences", "Class for handling File Preferences") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") @@ -137,7 +136,7 @@ void CEditorPreferencesPage_Files::OnApply() gSettings.autoBackupMaxCount = m_autoBackup.m_maxCount; gSettings.autoRemindTime = m_autoBackup.m_remindTime; - gSettings.numberOfItemsShownInSearch = m_assetBrowserSearch.m_numOfItemsShown; + gSettings.maxNumberOfItemsShownInSearch = m_assetBrowserSearch.m_maxNumberOfItemsShownInSearch; } void CEditorPreferencesPage_Files::InitializeSettings() @@ -163,5 +162,5 @@ void CEditorPreferencesPage_Files::InitializeSettings() m_autoBackup.m_maxCount = gSettings.autoBackupMaxCount; m_autoBackup.m_remindTime = gSettings.autoRemindTime; - m_assetBrowserSearch.m_numOfItemsShown = gSettings.numberOfItemsShownInSearch; + m_assetBrowserSearch.m_maxNumberOfItemsShownInSearch = gSettings.maxNumberOfItemsShownInSearch; } diff --git a/Code/Sandbox/Editor/EditorPreferencesPageFiles.h b/Code/Sandbox/Editor/EditorPreferencesPageFiles.h index 2e27cd3c3e..40e9577f7f 100644 --- a/Code/Sandbox/Editor/EditorPreferencesPageFiles.h +++ b/Code/Sandbox/Editor/EditorPreferencesPageFiles.h @@ -72,7 +72,7 @@ private: { AZ_TYPE_INFO(AssetBrowserSearch, "{9FBFCD24-9452-49DF-99F4-2711443CEAAE}") - int m_numOfItemsShown; + int m_maxNumberOfItemsShownInSearch; }; Files m_files; diff --git a/Code/Sandbox/Editor/Settings.cpp b/Code/Sandbox/Editor/Settings.cpp index 398ad5f5cb..d49a1d40d1 100644 --- a/Code/Sandbox/Editor/Settings.cpp +++ b/Code/Sandbox/Editor/Settings.cpp @@ -498,7 +498,7 @@ void SEditorSettings::Save() SaveValue("Settings", "AutoBackupTime", autoBackupTime); SaveValue("Settings", "AutoBackupMaxCount", autoBackupMaxCount); SaveValue("Settings", "AutoRemindTime", autoRemindTime); - SaveValue("Settings", "MaxDisplayedItemsNumInSearch", numberOfItemsShownInSearch); + SaveValue("Settings", "MaxDisplayedItemsNumInSearch", maxNumberOfItemsShownInSearch); SaveValue("Settings", "CameraMoveSpeed", cameraMoveSpeed); SaveValue("Settings", "CameraRotateSpeed", cameraRotateSpeed); SaveValue("Settings", "StylusMode", stylusMode); @@ -711,7 +711,7 @@ void SEditorSettings::Load() LoadValue("Settings", "AutoBackupTime", autoBackupTime); LoadValue("Settings", "AutoBackupMaxCount", autoBackupMaxCount); LoadValue("Settings", "AutoRemindTime", autoRemindTime); - LoadValue("Settings", "MaxDisplayedItemsNumInSearch", numberOfItemsShownInSearch); + LoadValue("Settings", "MaxDisplayedItemsNumInSearch", maxNumberOfItemsShownInSearch); LoadValue("Settings", "CameraMoveSpeed", cameraMoveSpeed); LoadValue("Settings", "CameraRotateSpeed", cameraRotateSpeed); LoadValue("Settings", "StylusMode", stylusMode); @@ -1208,5 +1208,5 @@ AzToolsFramework::ConsoleColorTheme SEditorSettings::GetConsoleColorTheme() cons int SEditorSettings::GetMaxNumberOfItemsShownInSearchView() const { - return SEditorSettings::numberOfItemsShownInSearch; + return SEditorSettings::maxNumberOfItemsShownInSearch; } diff --git a/Code/Sandbox/Editor/Settings.h b/Code/Sandbox/Editor/Settings.h index ee6aa24ca5..802809ac11 100644 --- a/Code/Sandbox/Editor/Settings.h +++ b/Code/Sandbox/Editor/Settings.h @@ -382,7 +382,7 @@ AZ_POP_DISABLE_DLL_EXPORT_BASECLASS_WARNING // Asset Browser Search View. ////////////////////////////////////////////////////////////////////////// //! Current maximum number of items that can be displayed in the AssetBrowser Search View. - int numberOfItemsShownInSearch; + int maxNumberOfItemsShownInSearch; ////////////////////////////////////////////////////////////////////////// From 4251e2600a5defd438edde84ab0e9b087bda8c11 Mon Sep 17 00:00:00 2001 From: igarri Date: Wed, 30 Jun 2021 15:18:29 +0100 Subject: [PATCH 06/10] Fixing Asset Browser Search name Signed-off-by: igarri --- Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp b/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp index f6333b9a76..81f5e52828 100644 --- a/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp +++ b/Code/Sandbox/Editor/EditorPreferencesPageFiles.cpp @@ -51,7 +51,7 @@ void CEditorPreferencesPage_Files::Reflect(AZ::SerializeContext& serialize) ->Field("Files", &CEditorPreferencesPage_Files::m_files) ->Field("Editors", &CEditorPreferencesPage_Files::m_editors) ->Field("AutoBackup", &CEditorPreferencesPage_Files::m_autoBackup) - ->Field("Asset Browser Search", &CEditorPreferencesPage_Files::m_assetBrowserSearch); + ->Field("AssetBrowserSearch", &CEditorPreferencesPage_Files::m_assetBrowserSearch); AZ::EditContext* editContext = serialize.GetEditContext(); From e9f44863a47b8eaaf26a8e745eeecfe10971fe72 Mon Sep 17 00:00:00 2001 From: igarri Date: Wed, 30 Jun 2021 15:21:34 +0100 Subject: [PATCH 07/10] Fixed BuildMap method Signed-off-by: igarri --- .../AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp index 2cf5b13c91..9874c5571f 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp @@ -120,7 +120,10 @@ namespace AzToolsFramework row = BuildTableModelMap(model, index, row); } } + else + { break; + } } return row; } From 8b016f86a63df1b92f86848b0fe5a5284e0ea5c7 Mon Sep 17 00:00:00 2001 From: igarri Date: Fri, 2 Jul 2021 13:38:35 +0100 Subject: [PATCH 08/10] Adressing Code review comments Signed-off-by: igarri --- .../AssetBrowser/AssetBrowserTableModel.cpp | 14 ++++++-------- .../AssetBrowser/AssetBrowserTableModel.h | 3 ++- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp index 9874c5571f..0da7007e01 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.cpp @@ -14,7 +14,6 @@ namespace AzToolsFramework { AssetBrowserTableModel::AssetBrowserTableModel(QObject* parent /* = nullptr */) : QSortFilterProxyModel(parent) - , m_numberOfItemsDisplayed(200) { setDynamicSortFilter(false); } @@ -89,21 +88,20 @@ namespace AzToolsFramework int AssetBrowserTableModel::BuildTableModelMap( const QAbstractItemModel* model, const QModelIndex& parent /*= QModelIndex()*/, int row /*= 0*/) { - static int displayedItemsCounter = 0; int rows = model ? model->rowCount(parent) : 0; if (parent == QModelIndex()) { - displayedItemsCounter = 0; + m_displayedItemsCounter = 0; } - for (int i = 0; i < rows; ++i) + for (int currentRow = 0; currentRow < rows; ++currentRow) { - if (displayedItemsCounter < m_numberOfItemsDisplayed) + if (m_displayedItemsCounter < m_numberOfItemsDisplayed) { - QModelIndex index = model->index(i, 0, parent); + QModelIndex index = model->index(currentRow, 0, parent); AssetBrowserEntry* entry = GetAssetEntry(m_filterModel->mapToSource(index)); - // We only wanna see the source assets. + // We only want to see the source assets. if (entry->GetEntryType() == AssetBrowserEntry::AssetEntryType::Source) { beginInsertRows(parent, row, row); @@ -112,7 +110,7 @@ namespace AzToolsFramework Q_EMIT dataChanged(index, index); ++row; - ++displayedItemsCounter; + ++m_displayedItemsCounter; } if (model->hasChildren(index)) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.h b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.h index 5395512dae..b2131c2ae3 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.h @@ -50,7 +50,8 @@ namespace AzToolsFramework int BuildTableModelMap(const QAbstractItemModel* model, const QModelIndex& parent = QModelIndex(), int row = 0); private: - int m_numberOfItemsDisplayed; + int m_numberOfItemsDisplayed = 0; + int m_displayedItemsCounter = 0; QPointer m_filterModel; QMap m_indexMap; }; From 26d9a3b5b3dd9025499dccbf4620f8974c58e33e Mon Sep 17 00:00:00 2001 From: igarri Date: Wed, 7 Jul 2021 13:54:18 +0100 Subject: [PATCH 09/10] Fixed tabs Signed-off-by: igarri --- Code/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Code/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp b/Code/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp index 6bd0c00150..c0e08f86b1 100644 --- a/Code/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp +++ b/Code/Editor/AzAssetBrowser/AzAssetBrowserWindow.cpp @@ -81,7 +81,7 @@ AzAssetBrowserWindow::AzAssetBrowserWindow(QWidget* parent) m_ui->m_assetBrowserTableViewWidget->setVisible(false); m_ui->m_toggleDisplayViewBtn->setVisible(false); - m_ui->m_searchWidget->SetFilterInputInterval(AZStd::chrono::milliseconds(250)); + m_ui->m_searchWidget->SetFilterInputInterval(AZStd::chrono::milliseconds(250)); if (ed_useNewAssetBrowserTableView) { m_ui->m_toggleDisplayViewBtn->setVisible(true); From a241eb8e1cb21c141d1996fc929e6ca0242e8018 Mon Sep 17 00:00:00 2001 From: igarri Date: Mon, 2 Aug 2021 11:18:24 +0100 Subject: [PATCH 10/10] Added Sensible default Signed-off-by: igarri --- .../AzToolsFramework/AssetBrowser/AssetBrowserTableModel.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.h b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.h index abc3bf315b..d80e2bd093 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserTableModel.h @@ -51,7 +51,7 @@ namespace AzToolsFramework int BuildTableModelMap(const QAbstractItemModel* model, const QModelIndex& parent = QModelIndex(), int row = 0); private: - int m_numberOfItemsDisplayed = 0; + int m_numberOfItemsDisplayed = 50; int m_displayedItemsCounter = 0; QPointer m_filterModel; QMap m_indexMap;