Repository navigation
feat(qt): implement the Game Mode redesign - #1120
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
This comment has been minimized.
This comment has been minimized.
|
Fixed the Linux/macOS CI failure in 6af0ab6. Odd-height font metrics exposed a half-pixel clock-centering error; a focused regression reproduced the failure locally before the layout fix. The original centering assertion is unchanged. The standalone layout harness now bundles the actual mono fonts and navigation icons and supplies its AppController context. The new console-control tests are also included in the CI unit target and Windows runtime dependencies. All 33 CI-unit entries pass locally; platform CI and the complete Qt suite are rerunning. |
|
Follow-up controller fixes are in 76fd5fa:
Validation: 420 Qt checks passed, the Python workflow/packaging contracts and localization checks passed, and the new Windows x64 Release package passed six smoke flows on the user's PC. The four virtual D-pad direction checks and the Windows search/menu/sheet regression runners passed there too. 2a56407 only aligns the standalone test hosts with the app's Basic control style and waits for the newly opened checkbox sheet to render before clicking it on Qt 6.11.2. Assertions remain intact. No live cloud gameplay validation was performed. |
Implements the approved Game Mode Paper design in the existing Qt/native application. Opus 5.5 High handled the UI implementation; Astra handled integration, input/state wiring, and verification.
Console UI
Game Mode entry
Input and lifecycle safety
The native video item remains alive beneath overlays. Console gameplay input waits for first-frame metadata, statistics stay nonblocking, and queue polling cannot replace an exit confirmation. A required ad's existing view stays underneath the confirmation.
Confirmations activate the focused action rather than treating Enter as unconditional confirmation. Root warnings block background navigation and reclaim focus from deferred page callbacks. Store chips survive metadata refresh without dropping focus or substituting another store for an invalid selection. Dismissing update notices and settings sheets restores usable controller focus.
Guide screenshots dismiss the guide and wait for rendered frames before compositor capture. This remains a window-region capture, not a decoded-frame export. Screenshot callbacks and modal HDR layers are active only while needed. Shared reveal motion now has a standalone, interruptible animation owner with working reduced-motion transitions.
Desktop-specific layouts are unchanged apart from the UI-sounds toggle. Native streaming protocols are unchanged. Shared component contracts are preserved. Only
locales/en.jsonreceives translation-source additions.Verification
npm run locales:check, 213 Python contract tests, QML syntax checks, Rust formatting, andgit diff --checkpassed. The new core sound-preference persistence/default/reset test passed.The screenshots and recording below use account-free fixtures, not a live session. Live GFN gameplay, physical controllers, native HDR output, and Wayland screenshot capture were not exercised. Reproduction commands and component contracts are in
docs/qt-game-mode-design.md.Watch the Qt picker, settings navigation, and safe confirmation interaction
Watch the running Qt cloud entry with startup sound