Skip to content

feat(qt): rebuild first-run onboarding as guided one-decision steps - #1159

Merged
zortos293 merged 1 commit into
devfrom
feat/onboarding-option-b
Oct 13, 2026
Merged

zortos293 merged 1 commit into
devfrom
feat/onboarding-option-b

Conversation

@zortos293

Copy link
Copy Markdown
Collaborator

Replaces the six-step first-run wizard with Option B from the OpenNOW onboarding Paper file ("Guided, one decision per screen"): Mode → Picture → Boost (optional) → Ready, plus a required Network check that exists only where the macOS AWDL controller is supported.

Flow and layout

  • The left step rail and the bottom footer are gone. A segmented progress bar sits in the header (clickable, PageTab accessibility, no labels in compact width). Content is one centred column, max 980 px, vertically centred on the window, with Back and the primary action directly under it.
  • Mode carries the beta notice: a "WELCOME TO THE OPENNOW BETA" eyebrow and a quiet "Something broken? Report a bug ↗" link under Continue. The Welcome step is removed.
  • Picture shows Resolution and Frame rate up front. HDR, codec and bitrate fold under a Fine-tune row (the existing DesktopSettingsRow expandable chevron plus DesktopSettingsDisclosure); the row summary reads e.g. HDR off · Codec Auto · 75 Mbps maximum. The REQUESTED badges, The Stage preview and the Bitrate limit card were dropped because they repeated the same values.
  • Network check (macOS only) hosts the unchanged DesktopOnboardingNetwork card. Continue stays disabled ("Disable AWDL to continue") until AWDL is down or absent, exactly as before; Skip setup, Finish and a re-enable during save still route back to this step. On other platforms the step and its progress segment do not exist.
  • Boost is one panel: frame generation, upscaling, clarity (and noise reduction on macOS), and the stats/menu hint. Skip for now drops only the staged boost keys from the draft (new OnboardingState.resetSettings) and moves on.
  • Ready keeps the clickable summary (with a Network row on macOS) and adds the support ask as a secondary card under the actions. The Support step is removed. "Finish and open library" is the primary label.

What did not change

  • Buttons, segments, toggles, stepper, mode cards and panels are the same components; only placement and copy order moved.
  • Every key the old flow wrote is still written, in the same order, with onboardingCompleted last. Esc skips setup, Enter continues, Alt+←/→ navigate, Tab order follows the column.
  • Copy changes are in locales/en.json only. Strings the old screens alone used were removed; new ones were added with the existing s_onboarding_<sha256[:10]> key scheme.

Tests

  • Test names are unchanged. Step indices in cmake/Tests.cmake follow the new order (layout 0 1 3, resolution 1, AWDL 2, render/scroll 0..3).
  • Acceptance now also checks: no Network step without AWDL support and the step inserted between Picture and Boost with it; Fine-tune folded by default; Skip for now keeps other steps' choices; the report-a-bug link on Mode and the support card on Ready; horizontal and window centring of the column.
  • Scroll acceptance walks every focusable control in the page body, including the actions that now live in the column. revealFocusedControl clamps its margin so a tall control in a short viewport fits.
  • tst_embeddedorchestration.cpp has no onboarding source-path fixtures, so it needed no change.
  • Local run: ctest --output-on-failure 460/460, npm run locales:check OK, scripts/capture-qt-onboarding.sh captures all steps including the new network and network-compact.

Captures (left: app under xvfb with --smoke-onboarding at 1600×900; right: Paper artboard)

Mode
Picture
Network check, macOS only, forced with --onboarding-awdl-check
Boost
Ready

Compact 960×540 at 1.25×, Picture and Network check:
Compact

Not verified

The Network check ran on Linux with the injected AWDL controller, not on a real Mac with the admin prompt. No real GFN login was used.

Open in Capy

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Oct 13, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: ae615973-41c1-4835-9014-36df2b6a2be7

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@capy-ai capy-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Capy found no issues.

View 2 other findings in Capy.

Open in Capy

@zortos293
zortos293 merged commit c4badd4 into dev Oct 13, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant