Files
o3de/Code/Tools/ProjectManager/Source/GemCatalog/GemInfo.h
T
Benjamin Jillich 03b41b620d [LYN-2522] Preparation work for the filter pane (#799)
* [LYN-2522] Preparation work for the filter pane

* Added arrow up/down icons.
* Extended the gem info with the type (Asset, Code, Tool).
* Extended the model with the type and a helper for converting gem uuids into display names.
* Extended the link widget to be clickable with a custom action, needed for the "Show all/less" for the filters.
* Converting the uuids we get from Python to AZ::Uuids and then back to strings to have them all in the same format.
2021-05-20 18:42:37 +02:00

77 lines
2.3 KiB
C++

/*
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
* its licensors.
*
* For complete copyright and license terms please see the LICENSE at the root of this
* distribution (the "License"). All use of this software is governed by the License,
* or, if provided, by the license below or the license accompanying this file. Do not
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
*/
#pragma once
#if !defined(Q_MOC_RUN)
#include <AzCore/Math/Uuid.h>
#include <QString>
#include <QStringList>
#include <QVector>
#endif
namespace O3DE::ProjectManager
{
class GemInfo
{
public:
enum Platform
{
Android = 1 << 0,
iOS = 1 << 1,
Linux = 1 << 2,
macOS = 1 << 3,
Windows = 1 << 4,
NumPlatforms = 5
};
Q_DECLARE_FLAGS(Platforms, Platform)
static QString GetPlatformString(Platform platform);
enum Type
{
Asset = 1 << 0,
Code = 1 << 1,
Tool = 1 << 2,
NumTypes = 3
};
Q_DECLARE_FLAGS(Types, Type)
static QString GetTypeString(Type type);
GemInfo() = default;
GemInfo(const QString& name, const QString& creator, const QString& summary, Platforms platforms, bool isAdded);
bool IsPlatformSupported(Platform platform) const;
bool IsValid() const;
QString m_path;
QString m_name;
QString m_displayName;
AZ::Uuid m_uuid;
QString m_creator;
bool m_isAdded = false; //! Is the gem currently added and enabled in the project?
QString m_summary;
Platforms m_platforms;
Types m_types; //! Asset and/or Code and/or Tool
QStringList m_features;
QString m_directoryLink;
QString m_documentationLink;
QString m_version;
QString m_lastUpdatedDate;
int m_binarySizeInKB = 0;
QStringList m_dependingGemUuids;
QStringList m_conflictingGemUuids;
};
} // namespace O3DE::ProjectManager
Q_DECLARE_OPERATORS_FOR_FLAGS(O3DE::ProjectManager::GemInfo::Platforms)
Q_DECLARE_OPERATORS_FOR_FLAGS(O3DE::ProjectManager::GemInfo::Types)