mirror of
https://github.com/LorenEteval/Furious.git
synced 2026-10-12 17:28:35 +03:00
978 B
978 B
Action guidance
Scope and contracts
- Actions are thin presentation commands. Resolve current state when triggered, call its owning controller/service, and present the result; do not own connection, routing, import, or persistence state.
- Share one
QActioncommand between menus/buttons so callback, enabled/check state, shortcut, and translation cannot diverge.AppQAction.callbackis a strong reference, so its QObject owner must not outlive a captured receiver. - Import through
profileFromAnyand plugin capabilities. Treat clipboard, file, URI, QR, and subscription content as untrusted and avoid logging secret-bearing payloads. - Managed asynchronous dialogs connect completion before
open(). Long or batched work must yield or use one owned worker/progress dialog; never sleep the GUI thread.
Verification
- Verify command state and results plus repeated triggering: dialogs, dynamic menus, callbacks, and workers must return to baseline.