Repository navigation
fix(modern): a store's window never builds the stress panel - #382
Merged
Merged
Conversation
The stress panel (vtmodern --stress) was built in every window and only hidden, so keeping a store's screen still depended on each of its bindings remembering there was no stress test; the last fix guarded one timer. Main.qml now loads the panel only while a stress test is attached (a Loader, like the setup guide), so a store has no panel, no hidden controls and no tour timer at all. The timer's duplicate stress check and the duplicate objectName on the instance go. The regression test asserts the panel and its tour timer do not exist in a store's window, then attaches an unstarted stress runner as a control: the panel appears with the tour running and leaves when it is detached, so the names it checks are proven live. It no longer waits 200 ms on a 15-second timer, uses findChild instead of a hand-rolled finder, and is tagged [flow][ui] rather than a look-alike of the hidden [.stress] run. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018nW8B6ZSc3vRSbdE1Vk358
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Follow-up to #381, which stopped the stress panel's page tour from switching a store's screen by guarding one Timer. A code review of that change found six issues; this PR addresses all of them.
vtmodern --stress) was built in every window and only hidden, so a store's screen staying put depended on each binding remembering there was no stress test.Main.qmlnow loads the panel through aLoaderthat is active only while a stress test is attached (the same pattern as the setup guide), so a store has no panel, no hidden controls and no tour timer at all. The panel is wrapped in a plainItembecause a fillingLoaderresizes its loaded item, which would have fought the panel's own sizing.stress !== nullguard and the duplicateobjectNameon the instance are removed; the component root keeps the one name.findChildinstead of a hand-rolled finder, asserts that neither the panel nor its tour timer exists in a store's window, then attaches an unstartedStressRunneras a control: the panel appears with the tour running and leaves when detached, so the names it checks are proven live. The 200 ms wait on a 15-second timer is gone, and the tag is[flow][ui]rather than a look-alike of the hidden[.stress]run.Test plan
Built and run against Qt 6.8.3 the way
modern-checks.ymldoes (QT_QPA_PLATFORM=offscreen):vtm_testssuite: 556 passed, 1 pre-existing skip, 0 failuresvtm_tests "UI: no stress test*"passesStressPanelinstance is put back (threeCHECK_FALSEfailures) and when the Timer'sobjectNameis removed (REQUIRE(tour)fails); passes again on the committed sourcesvtm_tests "[ui][pages]": every seed page still renders without a QML warning🤖 Generated with Claude Code
https://claude.ai/code/session_018nW8B6ZSc3vRSbdE1Vk358
Generated by Claude Code