[LYN-2514] Create a new project control now reinits the gem catalog and enables gems based on the user selection

This commit is contained in:
Benjamin Jillich
2021-06-02 17:53:49 +02:00
parent b0ef89edf9
commit 39bb0bf2fc
2 changed files with 14 additions and 3 deletions
@@ -15,7 +15,6 @@
#include <PythonBindingsInterface.h>
#include <NewProjectSettingsScreen.h>
#include <ScreenHeaderWidget.h>
#include <GemCatalog/GemCatalogScreen.h>
#include <QDialogButtonBox>
#include <QHBoxLayout>
@@ -42,9 +41,10 @@ namespace O3DE::ProjectManager
m_stack = new QStackedWidget(this);
m_stack->setObjectName("body");
m_stack->setSizePolicy(QSizePolicy(QSizePolicy::Preferred,QSizePolicy::Expanding));
m_stack->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding));
m_stack->addWidget(new NewProjectSettingsScreen());
m_stack->addWidget(new GemCatalogScreen());
m_gemCatalog = new GemCatalogScreen();
m_stack->addWidget(m_gemCatalog);
vLayout->addWidget(m_stack);
QDialogButtonBox* backNextButtons = new QDialogButtonBox();
@@ -88,9 +88,11 @@ namespace O3DE::ProjectManager
emit GotoPreviousScreenRequest();
}
}
void CreateProjectCtrl::HandleNextButton()
{
ScreenWidget* currentScreen = reinterpret_cast<ScreenWidget*>(m_stack->currentWidget());
const int currentScreenIndex = m_stack->currentIndex();
ProjectManagerScreen screenEnum = currentScreen->GetScreenEnum();
if (screenEnum == ProjectManagerScreen::NewProjectSettings)
@@ -106,6 +108,9 @@ namespace O3DE::ProjectManager
m_projectInfo = newProjectScreen->GetProjectInfo();
m_projectTemplatePath = newProjectScreen->GetProjectTemplatePath();
// The next page is the gem catalog. Gather the available gems that will be shown in the gem catalog.
m_gemCatalog->ReinitForProject(m_projectInfo.m_path, /*isNewProject=*/true);
}
}
@@ -129,6 +134,9 @@ namespace O3DE::ProjectManager
{
QMessageBox::critical(this, tr("Project creation failed"), tr("Failed to create project."));
}
// Enable/disable gems for the newly created project.
m_gemCatalog->EnableDisableGemsForProject(m_projectInfo.m_path);
}
}