A window that composes window-features instead of inheriting them (§ACW-3, §ACO W7). More...
| Header: | #include <StandaloneWindow> |
| Inherits: | QWidget |
This is the window axis's terminus made real for the node-free side. NodeWindow is the second god-object of the composition program: it bundles the stack host, chrome, confirm host, toast overlay, OPAL surface and splash, and AgentWindow, HubWindow and RemoteWindow inherit all of it (§ACW-1). The cure is the same one Node got: composition over inheritance. A window becomes a shell that assembles window-features, and the discriminator between a node window and a standalone one is which features are composed, not which base class is inherited (§ACW-3).
The Features flags select the composition. The default is the node-free core: a WindowStackHost, a toast overlay and a confirm controller. The window always installs a StandaloneActivityContext, which carries the stack when the stack host is composed, so an activity pushed onto it reaches its facilities without a Node.
Ownership follows Qt: every feature is either a child QObject of this window or is owned through the widget tree, and the window owns the activity context outright. Destroying the window destroys the composition.
Note: This class deliberately does NOT derive from NodeWindow, and nothing here includes a Node header. §AC-3.1 asks for construction with no Node, and testStandaloneWindow is the proof (§ACW-5 rule 3). The features composed here already ship in production through StandaloneHarness (§ACW-6), so this class adopts working code rather than introducing a design.
Note: The shared NodeWindow base is untouched by this class. §ACW-5 rule 2 is explicit: extract into composable features, do not de-Node the base in place under three derived windows at once. That edit is the highest-disruption item in the program and it is not this one.
Note: Usable as a StandaloneHarness shell as-is. The harness takes a ShellFactory returning any QWidget *, so an app returns one of these and gets the window title, --fullscreen handling and the first-show splash without this class knowing anything about them. That is why there is no title or geometry logic here. The auda and singularity apps use this class.
Note: §ACF-5 classification: this and everything it composes are GLUE, host chrome a window assembles at build time, with no lifecycle tier. That is why there is no Service and no start or stop here, and why the composed confirm and toast features are published as facilities.