ScreenFactory.cpp 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <ScreenFactory.h>
  9. #include <CreateProjectCtrl.h>
  10. #include <UpdateProjectCtrl.h>
  11. #include <NewProjectSettingsScreen.h>
  12. #include <GemCatalog/GemCatalogScreen.h>
  13. #include <ProjectsScreen.h>
  14. #include <ProjectGemCatalogScreen.h>
  15. #include <UpdateProjectSettingsScreen.h>
  16. #include <GemsGemRepoScreen.h>
  17. #include <EngineScreenCtrl.h>
  18. #include <EngineSettingsScreen.h>
  19. #include <GemRepo/GemRepoScreen.h>
  20. #include <CreateAGemScreen.h>
  21. #include <EditAGemScreen.h>
  22. #include <DownloadController.h>
  23. namespace O3DE::ProjectManager
  24. {
  25. ScreenWidget* BuildScreen(QWidget* parent, ProjectManagerScreen screen, DownloadController* downloadController)
  26. {
  27. ScreenWidget* newScreen;
  28. switch(screen)
  29. {
  30. case (ProjectManagerScreen::CreateProject):
  31. newScreen = new CreateProjectCtrl(downloadController, parent);
  32. break;
  33. case (ProjectManagerScreen::NewProjectSettings):
  34. newScreen = new NewProjectSettingsScreen(downloadController, parent);
  35. break;
  36. case (ProjectManagerScreen::GemCatalog):
  37. newScreen = new GemCatalogScreen(downloadController, true, parent);
  38. break;
  39. case (ProjectManagerScreen::ProjectGemCatalog):
  40. newScreen = new ProjectGemCatalogScreen(downloadController, parent);
  41. break;
  42. case (ProjectManagerScreen::Projects):
  43. newScreen = new ProjectsScreen(downloadController, parent);
  44. break;
  45. case (ProjectManagerScreen::UpdateProject):
  46. newScreen = new UpdateProjectCtrl(downloadController, parent);
  47. break;
  48. case (ProjectManagerScreen::UpdateProjectSettings):
  49. newScreen = new UpdateProjectSettingsScreen(parent);
  50. break;
  51. case (ProjectManagerScreen::GemsGemRepos):
  52. newScreen = new GemsGemRepoScreen(parent);
  53. break;
  54. case (ProjectManagerScreen::Engine):
  55. newScreen = new EngineScreenCtrl(parent);
  56. break;
  57. case (ProjectManagerScreen::EngineSettings):
  58. newScreen = new EngineSettingsScreen(parent);
  59. break;
  60. case (ProjectManagerScreen::GemRepos):
  61. newScreen = new GemRepoScreen(parent);
  62. break;
  63. case (ProjectManagerScreen::CreateGem):
  64. newScreen = new CreateGem(parent);
  65. break;
  66. case (ProjectManagerScreen::EditGem):
  67. newScreen = new EditGem(parent);
  68. break;
  69. case (ProjectManagerScreen::Empty):
  70. default:
  71. newScreen = new ScreenWidget(parent);
  72. }
  73. //handle any code that needs to run after construction but before startup
  74. newScreen->Init();
  75. return newScreen;
  76. }
  77. } // namespace O3DE::ProjectManager