@@ -35,12 +35,9 @@ void applySavedReviewState(const ProjectMetadata& metadata, safecrowd::domain::I
3535 ProjectPersistence::loadProjectReview (metadata, importResult);
3636}
3737
38- safecrowd::domain::ImportResult makeDemoImportResult () {
39- safecrowd::domain::DemoFixtureService fixtureService;
40- const auto fixture = fixtureService.createSprint1DemoFixture ();
41-
38+ safecrowd::domain::ImportResult makeImportResultForDemoLayout (safecrowd::domain::FacilityLayout2D layout) {
4239 safecrowd::domain::ImportResult result;
43- result.layout = fixture. layout ;
40+ result.layout = std::move ( layout) ;
4441
4542 safecrowd::domain::ImportValidationService validator;
4643 result.issues = validator.validate (*result.layout );
@@ -50,6 +47,18 @@ safecrowd::domain::ImportResult makeDemoImportResult() {
5047 return result;
5148}
5249
50+ safecrowd::domain::ImportResult makeSprint1DemoImportResult () {
51+ safecrowd::domain::DemoFixtureService fixtureService;
52+ const auto fixture = fixtureService.createSprint1DemoFixture ();
53+ return makeImportResultForDemoLayout (fixture.layout );
54+ }
55+
56+ safecrowd::domain::ImportResult makeTwoFloorEvacuationDemoImportResult () {
57+ safecrowd::domain::DemoFixtureService fixtureService;
58+ const auto fixture = fixtureService.createTwoFloorEvacuationDemoFixture ();
59+ return makeImportResultForDemoLayout (fixture.layout );
60+ }
61+
5362ProjectWorkspaceState makeEvacuationScenarioDemoWorkspace () {
5463 using namespace safecrowd ::domain;
5564
@@ -90,6 +99,35 @@ ProjectWorkspaceState makeEvacuationScenarioDemoWorkspace() {
9099 return workspace;
91100}
92101
102+ ProjectWorkspaceState makeTwoFloorEvacuationDemoWorkspace () {
103+ using namespace safecrowd ::domain;
104+
105+ safecrowd::domain::DemoFixtureService fixtureService;
106+ auto fixture = fixtureService.createTwoFloorEvacuationDemoFixture ();
107+
108+ SavedScenarioAuthoringState authoring;
109+ authoring.scenarios .push_back ({
110+ .draft = fixture.baselineScenario ,
111+ .baseScenarioId = {},
112+ .stagedForRun = true ,
113+ });
114+ authoring.scenarios .push_back ({
115+ .draft = fixture.alternativeScenario ,
116+ .baseScenarioId = fixture.baselineScenario .scenarioId ,
117+ .stagedForRun = true ,
118+ });
119+ authoring.currentScenarioIndex = 1 ;
120+ authoring.navigationView = SavedNavigationView::Events;
121+ authoring.rightPanelMode = SavedRightPanelMode::Scenario;
122+
123+ ProjectWorkspaceState workspace;
124+ workspace.activeView = ProjectWorkspaceView::ScenarioRun;
125+ workspace.authoring = std::move (authoring);
126+ workspace.runningScenario = fixture.alternativeScenario ;
127+ workspace.runningScenarios = {fixture.baselineScenario , fixture.alternativeScenario };
128+ return workspace;
129+ }
130+
93131safecrowd::domain::ImportResult makeBlankImportResult (const QString& projectName) {
94132 safecrowd::domain::ImportResult result;
95133 result.layout = safecrowd::domain::FacilityLayout2D{
@@ -111,8 +149,11 @@ safecrowd::domain::ImportResult makeBlankImportResult(const QString& projectName
111149}
112150
113151safecrowd::domain::ImportResult importProjectLayout (const ProjectMetadata& metadata) {
114- if (metadata.isBuiltInDemo ()) {
115- return makeDemoImportResult ();
152+ if (metadata.isBuiltInTwoFloorEvacuationDemo ()) {
153+ return makeTwoFloorEvacuationDemoImportResult ();
154+ }
155+ if (metadata.layoutPath == builtInDemoLayoutPath () || metadata.isBuiltInEvacuationScenarioDemo ()) {
156+ return makeSprint1DemoImportResult ();
116157 }
117158 if (metadata.isBlankLayoutProject ()) {
118159 return makeBlankImportResult (metadata.name );
@@ -404,6 +445,8 @@ void MainWindow::openProject(const ProjectMetadata& metadata) {
404445 ProjectWorkspaceState workspace;
405446 if (metadata.isBuiltInEvacuationScenarioDemo ()) {
406447 workspace = makeEvacuationScenarioDemoWorkspace ();
448+ } else if (metadata.isBuiltInTwoFloorEvacuationDemo ()) {
449+ workspace = makeTwoFloorEvacuationDemoWorkspace ();
407450 } else if (!ProjectPersistence::loadProjectWorkspace (metadata, &workspace)) {
408451 showLayoutReview (metadata, std::move (importResult));
409452 return ;
0 commit comments