Make gem tags clickable and filter by their text in the Gem Catalog when clicked

Signed-off-by: nggieber <nggieber@amazon.com>
This commit is contained in:
nggieber
2021-10-28 09:21:56 -07:00
parent 837831a919
commit 37243c74ec
9 changed files with 37 additions and 1 deletions
@@ -439,4 +439,9 @@ namespace O3DE::ProjectManager
{
m_filterLineEdit->setText({});
}
void GemCatalogHeaderWidget::SetSearchFilter(const QString& filter)
{
m_filterLineEdit->setText(filter);
}
} // namespace O3DE::ProjectManager
@@ -86,6 +86,9 @@ namespace O3DE::ProjectManager
void ReinitForProject();
public slots:
void SetSearchFilter(const QString& filter);
signals:
void AddGem();
void OpenGemsRepo();
@@ -54,6 +54,8 @@ namespace O3DE::ProjectManager
m_gemInspector = new GemInspector(m_gemModel, this);
m_gemInspector->setFixedWidth(240);
connect(m_gemInspector, &GemInspector::TagClicked, m_headerWidget, &GemCatalogHeaderWidget::SetSearchFilter);
QWidget* filterWidget = new QWidget(this);
filterWidget->setFixedWidth(240);
m_filterWidgetLayout = new QVBoxLayout();
@@ -175,6 +175,7 @@ namespace O3DE::ProjectManager
// Depending gems
m_dependingGems = new GemsSubWidget();
connect(m_dependingGems, &GemsSubWidget::TagClicked, this, [=](const QString& tag){ emit TagClicked(tag); });
m_mainLayout->addWidget(m_dependingGems);
m_mainLayout->addSpacing(20);
@@ -40,6 +40,9 @@ namespace O3DE::ProjectManager
inline constexpr static const char* s_headerColor = "#FFFFFF";
inline constexpr static const char* s_textColor = "#DDDDDD";
signals:
void TagClicked(const QString& tag);
private slots:
void OnSelectionChanged(const QItemSelection& selected, const QItemSelection& deselected);