mirror of
https://github.com/LorenEteval/Furious.git
synced 2026-10-03 04:17:58 +03:00
2.3 KiB
2.3 KiB
Window and page guidance
MainWindowowns built-in pages, navigation, and the persistent Qt tree. Plugin pages enter throughPluginNavigationManager; pages adapt owning controllers/services/repositories rather than becoming competing state authorities. Preserve public forwarding attributes/methods until their consumers migrate.- The current composition has one shared subscription workflow owned by the server table and reused by
SubscriptionPage; Home owns update/connectivity/traffic services; Metrics owns endpoint inspection and derived rendering. Those locations may evolve, but a refactor must retain one durable owner, one scheduler, and one signal path. - Home is the initial page. Page selection and navigation expansion are session-local and initially collapsed; do not persist them without an explicit product decision and migration.
SettingsPagerenders built-in preferences throughSettingsControllerand plugin settings from declarative descriptors. Availability and enabled state are capability/platform policy (for example tray, privilege, and Flatpak constraints), not permission to persist an unsupported value or to duplicate host side effects in a card.- Long-lived pages create controls, models, timers, services, and signal connections once. Visibility may pause or defer rendering, but never application-level collection, log draining, subscription scheduling, or request ownership.
- One-shot editors/prompts use managed transient dialogs.
TextEditorWindowis intentionally reusable and needs one durable owner; normal close/closeEventremains the authority for unsaved confirmation, hiding, and final owner cleanup. - Use normal layouts and
AppQ*controls. File/network/core work leaves or cooperatively yields the GUI thread, and results return through owned signals without exposing secret documents in diagnostics. - Top-level windows use
AppQMainWindowfirst-show preparation and declarative default sizes. Restore saved geometry only after persistent children/layout exist; a valid saved geometry wins, otherwise use the canonical default/centering path. - Verify navigation defaults/plugin placement, lazy rendering versus continuous collection, shared-service ownership, async continuations, unsaved-close behavior, geometry migration/restore, and repeated open/show/hide/destroy stability.