@@ -576,6 +576,23 @@ QLabel* createRoleBadge(const QString& text, bool alternative, QWidget* parent)
576576 return badge;
577577}
578578
579+ QString scenarioRoleLabel (safecrowd::domain::ScenarioRole role) {
580+ switch (role) {
581+ case safecrowd::domain::ScenarioRole::Baseline:
582+ return " Baseline" ;
583+ case safecrowd::domain::ScenarioRole::Recommended:
584+ return " Recommended" ;
585+ case safecrowd::domain::ScenarioRole::Alternative:
586+ default :
587+ return " Alternative" ;
588+ }
589+ }
590+
591+ bool scenarioRoleHasBaselineDiff (safecrowd::domain::ScenarioRole role) {
592+ return role == safecrowd::domain::ScenarioRole::Alternative
593+ || role == safecrowd::domain::ScenarioRole::Recommended;
594+ }
595+
579596void addMetaRow (QVBoxLayout* layout, const QString& label, const QString& value, QWidget* parent) {
580597 auto * row = new QWidget (parent);
581598 auto * rowLayout = new QHBoxLayout (row);
@@ -1223,7 +1240,7 @@ void ScenarioAuthoringWidget::createScenarioWithName(const QString& name, int so
12231240 scenario.crowdPlacements = source.crowdPlacements ;
12241241 scenario.startText = source.startText ;
12251242 scenario.destinationText = source.destinationText ;
1226- scenario.baseScenarioId = source.draft .role == safecrowd::domain::ScenarioRole::Alternative
1243+ scenario.baseScenarioId = scenarioRoleHasBaselineDiff ( source.draft .role )
12271244 ? source.baseScenarioId
12281245 : QString::fromStdString (source.draft .scenarioId );
12291246 scenario.stagedForRun = false ;
@@ -1356,10 +1373,10 @@ void ScenarioAuthoringWidget::refreshInspector() {
13561373 if (!hasScenario) {
13571374 addStatusMessage (panelLayout, " No scenario selected" , scenarioOverviewPanel_);
13581375 } else {
1359- const bool alternative = scenario->draft .role == safecrowd::domain::ScenarioRole::Alternative ;
1376+ const bool variation = scenarioRoleHasBaselineDiff ( scenario->draft .role ) ;
13601377 panelLayout->addWidget (createRoleBadge (
1361- alternative ? " Alternative " : " Baseline " ,
1362- alternative ,
1378+ scenarioRoleLabel (scenario-> draft . role ) ,
1379+ variation ,
13631380 scenarioOverviewPanel_));
13641381
13651382 auto * nameLabel = createLabel (
@@ -1377,7 +1394,7 @@ void ScenarioAuthoringWidget::refreshInspector() {
13771394 addMetaRow (panelLayout, " Blocked" , QString::number (static_cast <int >(scenario->draft .control .connectionBlocks .size ())), scenarioOverviewPanel_);
13781395 addMetaRow (panelLayout, " Start" , scenario->startText , scenarioOverviewPanel_);
13791396 addMetaRow (panelLayout, " Destination" , scenario->destinationText , scenarioOverviewPanel_);
1380- if (alternative && !scenario->baseScenarioId .isEmpty ()) {
1397+ if (variation && !scenario->baseScenarioId .isEmpty ()) {
13811398 addMetaRow (panelLayout, " Based on" , scenario->baseScenarioId , scenarioOverviewPanel_);
13821399 }
13831400 }
@@ -1397,7 +1414,7 @@ void ScenarioAuthoringWidget::refreshInspector() {
13971414 } else if (scenario->draft .role == safecrowd::domain::ScenarioRole::Baseline) {
13981415 addStatusMessage (panelLayout, " Baseline scenario" , scenarioDiffPanel_);
13991416 } else if (scenario->baseScenarioId .isEmpty ()) {
1400- addStatusMessage (panelLayout, " Alternative scenario / no baseline link" , scenarioDiffPanel_);
1417+ addStatusMessage (panelLayout, " Variation scenario / no baseline link" , scenarioDiffPanel_);
14011418 } else {
14021419 const auto baseId = scenario->baseScenarioId .toStdString ();
14031420 const auto baselineIt = std::find_if (scenarios_.begin (), scenarios_.end (), [&](const auto & candidate) {
@@ -1452,8 +1469,8 @@ void ScenarioAuthoringWidget::refreshInspector() {
14521469 if (!stagedScenario.stagedForRun || !scenarioHasOccupants (stagedScenario)) {
14531470 continue ;
14541471 }
1455- const auto role = stagedScenario. draft . role == safecrowd::domain::ScenarioRole::Baseline ? " Baseline " : " Alternative " ;
1456- lines << QString ( " - %1 (%2) " ) .arg (QString::fromStdString (stagedScenario.draft .name ), role);
1472+ lines << QString ( " - %1 (%2) " )
1473+ .arg (QString::fromStdString (stagedScenario.draft .name ), scenarioRoleLabel (stagedScenario. draft . role ) );
14571474 }
14581475 }
14591476 stagedScenariosLabel_->setText (lines.join (' \n ' ));
@@ -1698,8 +1715,8 @@ void ScenarioAuthoringWidget::refreshScenarioSwitcher() {
16981715 scenarioSwitcher_->blockSignals (true );
16991716 scenarioSwitcher_->clear ();
17001717 for (const auto & scenario : scenarios_) {
1701- const auto role = scenario. draft . role == safecrowd::domain::ScenarioRole::Baseline ? " Baseline " : " Alternative " ;
1702- scenarioSwitcher_-> addItem ( QString ( " %1 (%2) " ) .arg (QString::fromStdString (scenario.draft .name ), role));
1718+ scenarioSwitcher_-> addItem ( QString ( " %1 (%2) " )
1719+ .arg (QString::fromStdString (scenario.draft .name ), scenarioRoleLabel (scenario. draft . role ) ));
17031720 }
17041721 scenarioSwitcher_->setCurrentIndex (currentScenarioIndex_);
17051722 scenarioSwitcher_->blockSignals (false );
@@ -1822,8 +1839,7 @@ void ScenarioAuthoringWidget::recomputeDependentVariationDiffKeys(const QString&
18221839}
18231840
18241841void ScenarioAuthoringWidget::recomputeVariationDiffKeysIfAlternative (ScenarioState& scenario) const {
1825- if (scenario.draft .role != safecrowd::domain::ScenarioRole::Alternative
1826- || scenario.baseScenarioId .isEmpty ()) {
1842+ if (!scenarioRoleHasBaselineDiff (scenario.draft .role ) || scenario.baseScenarioId .isEmpty ()) {
18271843 scenario.draft .variationDiffKeys .clear ();
18281844 return ;
18291845 }
@@ -2009,8 +2025,8 @@ QWidget* ScenarioAuthoringWidget::createScenarioPanel() {
20092025 if (!scenario.stagedForRun || !scenarioHasOccupants (scenario)) {
20102026 continue ;
20112027 }
2012- const auto role = scenario. draft . role == safecrowd::domain::ScenarioRole::Baseline ? " Baseline " : " Alternative " ;
2013- lines << QString ( " - %1 (%2) " ) .arg (QString::fromStdString (scenario.draft .name ), role);
2028+ lines << QString ( " - %1 (%2) " )
2029+ .arg (QString::fromStdString (scenario.draft .name ), scenarioRoleLabel (scenario. draft . role ) );
20142030 }
20152031 }
20162032 stagedScenariosLabel_->setText (lines.join (' \n ' ));
0 commit comments