[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);
}
}
@@ -14,6 +14,7 @@
#if !defined(Q_MOC_RUN)
#include <ScreenWidget.h>
#include <ProjectInfo.h>
#include <GemCatalog/GemCatalogScreen.h>
#endif
QT_FORWARD_DECLARE_CLASS(QStackedWidget)
@@ -48,6 +49,8 @@ namespace O3DE::ProjectManager
QString m_projectTemplatePath;
ProjectInfo m_projectInfo;
GemCatalogScreen* m_gemCatalog = nullptr;
};
} // namespace O3DE::ProjectManager