Extract app menu binding services

This commit is contained in:
2026-06-17 19:12:46 +02:00
parent d632efb10f
commit 0c609b9d15
16 changed files with 996 additions and 616 deletions

View File

@@ -25,6 +25,29 @@ agent or engineer to remove them without reconstructing context from chat.
owns that document-open handoff inline while retained dialog creation,
unsaved-project prompting, project-open execution, and title/layer refresh
still remain.
- 2026-06-17: `DEBT-0035` was narrowed again.
`src/app_layout_main_toolbar.cpp` no longer owns the retained main-toolbar
button wiring inline; `src/legacy_main_toolbar_binding_services.*` now owns
the per-button bindings behind explicit `App&` plus toolbar-root
dependencies, while the app-layout file remains a thin layout-root adapter
and retained toolbar execution still lives in
`src/legacy_app_shell_services.*`.
- 2026-06-17: `DEBT-0031`/`DEBT-0030` were narrowed again.
`src/app_layout_file_menu.cpp` no longer owns the retained File-menu popup,
export-submenu popup, or button wiring inline; that binding now lives in
`src/legacy_file_menu_binding_services.*`, while retained file/export command
execution still lives in `src/legacy_app_shell_services.*`.
- 2026-06-17: `DEBT-0034` was narrowed again.
`src/app_layout_about_layer_menu.cpp` no longer owns the retained About-menu
popup creation, version-label setup, or button wiring inline; that binding
now lives in `src/legacy_about_menu_binding_services.*`, while retained About
command execution and diagnostics still live in
`src/legacy_app_shell_services.*`.
- 2026-06-17: `DEBT-0033` was narrowed again.
`src/app_layout_tools_menu.cpp` no longer owns the retained Tools > Panels
submenu popup flow or panel-item wiring inline; that binding now lives in
`src/legacy_tools_menu_binding_services.*`, while retained Tools command
execution and options-menu preference wiring still remain in the app shell.
- 2026-06-17: `DEBT-0038` was narrowed again. The retained cloud upload and
download background execution in `src/legacy_cloud_services.cpp` now routes
through `AppRuntime::canvas_async_task` instead of a file-static worker

View File

@@ -83,6 +83,10 @@ Current conclusion:
`src/legacy_document_open_services.*`, and retained cloud upload/download,
brush-package import, and timelapse-export async paths now use
`AppRuntime::canvas_async_task` instead of file-static worker singletons.
- Main-toolbar, File-menu, About-menu, and Tools > Panels binding ownership now
lives in dedicated `legacy_*_binding_services.*` helpers, so the
corresponding `app_layout_*` files are thinner adapters even though retained
execution still lives in the app shell.
- Platform extraction improved substantially and the root app source group no
longer compiles Web platform sources directly, but broader CMake and
entrypoint cleanup are not complete.

View File

@@ -65,6 +65,25 @@ Key facts:
- `App::dialog_browse()` no longer owns browse-dialog button wiring inline; the
retained document-open bridge now owns that handoff in
`src/legacy_document_open_services.*`.
- `App::init_toolbar_main()` now delegates retained main-toolbar button wiring
through `src/legacy_main_toolbar_binding_services.*`, so
`src/app_layout_main_toolbar.cpp` is down to a thin root lookup and adapter
call while retained toolbar execution still lives in
`src/legacy_app_shell_services.*`.
- `App::init_menu_file()` now delegates retained File-menu popup and export
submenu wiring through `src/legacy_file_menu_binding_services.*`, so
`src/app_layout_file_menu.cpp` is down to a thin trigger lookup and adapter
call while retained file/export execution still lives in
`src/legacy_app_shell_services.*`.
- `App::init_menu_about()` now delegates retained About-menu popup wiring
through `src/legacy_about_menu_binding_services.*`, so
`src/app_layout_about_layer_menu.cpp` no longer owns the About callback body
inline while retained About execution still lives in
`src/legacy_app_shell_services.*`.
- `App::init_menu_tools()` now delegates the retained Tools > Panels submenu
wiring through `src/legacy_tools_menu_binding_services.*`, so
`src/app_layout_tools_menu.cpp` no longer owns that floating-panel submenu
body inline while retained Tools execution and options wiring remain.
## Parallel Assignment Rules