diff --git a/src/application/LayoutReviewWidget.cpp b/src/application/LayoutReviewWidget.cpp index fea327b..3e8e596 100644 --- a/src/application/LayoutReviewWidget.cpp +++ b/src/application/LayoutReviewWidget.cpp @@ -494,6 +494,9 @@ void LayoutReviewWidget::refreshApprovalState() { if (approveButton_ != nullptr) { approveButton_->setEnabled(!hasBlocking); + approveButton_->setToolTip(hasBlocking + ? "Resolve all blocking issues in the Issues panel before approving" + : "Approve this layout and proceed to Scenario Authoring"); } if (approvalStatusLabel_ == nullptr) { @@ -501,7 +504,7 @@ void LayoutReviewWidget::refreshApprovalState() { } if (hasBlocking) { - approvalStatusLabel_->setText("Resolve blocking issues first"); + approvalStatusLabel_->setText("Resolve blocking issues to approve"); return; } diff --git a/src/application/NewProjectWidget.cpp b/src/application/NewProjectWidget.cpp index 522decc..13f1093 100644 --- a/src/application/NewProjectWidget.cpp +++ b/src/application/NewProjectWidget.cpp @@ -77,7 +77,7 @@ NewProjectWidget::NewProjectWidget(QWidget* parent) layoutRow->setSpacing(12); auto* layoutBrowseButton = createOutlinedButton("Browse", this); layoutPathEdit_ = createTextInput(this); - layoutPathEdit_->setPlaceholderText("DXF file"); + layoutPathEdit_->setPlaceholderText("Select a DXF file using Browse"); layoutPathEdit_->setReadOnly(true); layoutPathEdit_->setStyleSheet(ui::textFieldStyleSheet(true)); layoutPathEdit_->setMaximumWidth(760); @@ -113,6 +113,7 @@ NewProjectWidget::NewProjectWidget(QWidget* parent) auto* cancelButton = createOutlinedButton("Cancel", this); auto* doneButton = createOutlinedButton("Done", this); doneButton->setStyleSheet(ui::primaryButtonStyleSheet()); + doneButton->setToolTip("Project name, DXF layout file, and folder are all required"); actionLayout->addWidget(cancelButton); actionLayout->addWidget(doneButton); cardLayout->addLayout(actionLayout); diff --git a/src/application/ProjectListWidget.cpp b/src/application/ProjectListWidget.cpp index d093e4e..89611ef 100644 --- a/src/application/ProjectListWidget.cpp +++ b/src/application/ProjectListWidget.cpp @@ -65,6 +65,11 @@ ProjectListWidget::ProjectListWidget(const QList& projects, QWi emptyLabel->setFont(ui::font(ui::FontRole::Body)); emptyLabel->setStyleSheet(ui::mutedTextStyleSheet()); layout->addWidget(emptyLabel); + auto* hintLabel = new QLabel("Use + New Project to create your first project.", this); + hintLabel->setFont(ui::font(ui::FontRole::Caption)); + hintLabel->setStyleSheet(ui::subtleTextStyleSheet()); + hintLabel->setWordWrap(true); + layout->addWidget(hintLabel); } else { for (const auto& project : projects) { addProjectRow(project); diff --git a/src/application/ScenarioAuthoringWidget.cpp b/src/application/ScenarioAuthoringWidget.cpp index 6cd05cb..ca1bc74 100644 --- a/src/application/ScenarioAuthoringWidget.cpp +++ b/src/application/ScenarioAuthoringWidget.cpp @@ -451,7 +451,16 @@ void ScenarioAuthoringWidget::refreshInspector() { } if (stageScenarioButton_ != nullptr) { stageScenarioButton_->setEnabled(hasScenario); - stageScenarioButton_->setText(hasScenario && scenario->stagedForRun ? "Staged for Run" : "Stage Scenario"); + if (!hasScenario) { + stageScenarioButton_->setText("Stage Scenario"); + stageScenarioButton_->setToolTip("Create a scenario first to enable staging"); + } else if (scenario->stagedForRun) { + stageScenarioButton_->setText("Staged for Run"); + stageScenarioButton_->setToolTip("Click to remove this scenario from the staged list"); + } else { + stageScenarioButton_->setText("Stage Scenario"); + stageScenarioButton_->setToolTip("Mark this scenario to be included in the next Run"); + } } } @@ -679,7 +688,8 @@ QWidget* ScenarioAuthoringWidget::createRunPanel() { return scenario.stagedForRun; }); if (stagedCount == 0) { - lines << "No staged scenarios"; + lines << "No scenarios staged for run."; + lines << "Select a scenario and click Stage Scenario to continue."; } else { lines << "Staged scenarios"; for (const auto& scenario : scenarios_) { @@ -698,6 +708,9 @@ QWidget* ScenarioAuthoringWidget::createRunPanel() { executeRunButton_->setFont(ui::font(ui::FontRole::Body)); executeRunButton_->setStyleSheet(ui::primaryButtonStyleSheet()); executeRunButton_->setEnabled(stagedCount > 0); + executeRunButton_->setToolTip(stagedCount > 0 + ? "Start simulation for all staged scenarios" + : "Stage at least one baseline scenario before running"); layout->addWidget(executeRunButton_); connect(executeRunButton_, &QPushButton::clicked, this, [this]() { runFirstStagedBaselineScenario();