[LYN-2522] Filtering for gem catalog (#867)

* Added sort filter proxy model for gem model that can filter based on name, gem origin, supported platform, features and/or types.
* Added new filter pane on the left with several filter categories for gem origin, type, platform and feature.
* Added filter category widget which is a collapsable generalized checkbox group that can interact with the proxy model and thus control filtering.
* Removed fixed size of the project manager. The application should always be resizable.
This commit is contained in:
Benjamin Jillich
2021-05-25 07:17:23 +02:00
committed by GitHub
parent 8d7a1130d0
commit 36c23b5d1a
18 changed files with 826 additions and 59 deletions
@@ -46,6 +46,15 @@ namespace O3DE::ProjectManager
Q_DECLARE_FLAGS(Types, Type)
static QString GetTypeString(Type type);
enum GemOrigin
{
O3DEFoundation = 1 << 0,
Local = 1 << 1,
NumGemOrigins = 2
};
Q_DECLARE_FLAGS(GemOrigins, GemOrigin)
static QString GetGemOriginString(GemOrigin origin);
GemInfo() = default;
GemInfo(const QString& name, const QString& creator, const QString& summary, Platforms platforms, bool isAdded);
bool IsPlatformSupported(Platform platform) const;
@@ -57,6 +66,7 @@ namespace O3DE::ProjectManager
QString m_displayName;
AZ::Uuid m_uuid;
QString m_creator;
GemOrigin m_gemOrigin = Local;
bool m_isAdded = false; //! Is the gem currently added and enabled in the project?
QString m_summary;
Platforms m_platforms;
@@ -74,3 +84,4 @@ namespace O3DE::ProjectManager
Q_DECLARE_OPERATORS_FOR_FLAGS(O3DE::ProjectManager::GemInfo::Platforms)
Q_DECLARE_OPERATORS_FOR_FLAGS(O3DE::ProjectManager::GemInfo::Types)
Q_DECLARE_OPERATORS_FOR_FLAGS(O3DE::ProjectManager::GemInfo::GemOrigins)