Move app open routing into document helper

This commit is contained in:
2026-06-16 23:37:55 +02:00
parent 6b337b2d87
commit 42bae9db16
5 changed files with 67 additions and 19 deletions

View File

@@ -341,6 +341,15 @@ Current slice:
`handle_legacy_node_canvas_event(...)` in
`src/legacy_canvas_tool_services.*`, which moves the live input/controller
pocket out of `src/node_canvas.cpp` and keeps the node on a thinner shell.
- `App::dialog_layer_rename()` now routes through
`open_legacy_document_layer_rename_dialog(...)` in
`src/legacy_document_layer_services.*`, which moves the remaining dialog
overlay-open/wire/close workflow out of `src/app_dialogs.cpp` and leaves
the app dialog shell thinner.
- `App::open_document(...)` now routes through
`execute_legacy_document_open(...)` in `src/legacy_document_open_services.*`,
which moves route classification and unsaved-project gating out of
`src/app.cpp` and into the retained document-open helper.
- `NodeCanvas` restore/clear context, resize handling, camera reset, buffer
creation, cursor visibility/update, tick, and destroy ownership now also
live in `src/legacy_node_canvas_state_services.*` instead of staying inline
@@ -385,6 +394,10 @@ Current slice:
now also lives in `src/legacy_ui_node_style.*` instead of staying inline in
`src/node.cpp`, which trims another coherent base scene-graph shell pocket
without changing the public surface.
- `NodePanelBrushPreset` global panel registration now also lives in
`src/legacy_brush_preset_list_services.*` instead of staying on the live
node type as a static registry field, which trims another retained
controller-state pocket from `src/node_panel_brush.cpp`.
Write scope:
- `src/node_stroke_preview.cpp`
@@ -533,7 +546,7 @@ Status: In Progress
Why now:
`src/app_dialogs.cpp` still mixes document workflow decisions, export routing,
dialog construction, and overlay ownership in one 168-line shell.
dialog construction, and overlay ownership in one 106-line shell.
Current slice:
- Informational overlay opener paths for user manual, changelog, about,
@@ -546,8 +559,15 @@ Current slice:
entrypoints are now thin call-throughs, but new/open/save/browse/resize and
retained dialog execution are still inline in `src/app_dialogs.cpp`.
- New/open/save/browse/resize workflow entrypoints now also live in
`src/app_dialogs_workflow.cpp`, and `src/app_dialogs.cpp` is down to the
remaining thin entrypoints plus layer-rename retained dialog glue.
`src/app_dialogs_workflow.cpp`, and the layer-rename dialog open / wire /
close pocket now lives in `src/legacy_document_layer_services.*`, leaving
`src/app_dialogs.cpp` down to the remaining thin entrypoints plus other
retained dialog glue.
- `App::open_document()` now routes document classification and unsaved-
project gating through `src/legacy_document_open_services.cpp` instead of
keeping that shell pocket inline in `src/app.cpp`, which trims the live app
entry file a little further while preserving the retained open-action
behavior.
Write scope:
- `src/app_dialogs.cpp`