Add canvas tool service boundary
This commit is contained in:
@@ -507,12 +507,13 @@ callbacks. Brush UI execution now dispatches through `BrushUiServices` before
|
||||
the legacy `Brush`/panel adapter mutates brush state or loads brush resources.
|
||||
`pano_cli plan-canvas-tool` exposes app-core planning for draw/erase/line,
|
||||
camera, grid, copy, cut, fill, mask, flood-fill, pick, and touch-lock toolbar
|
||||
commands before legacy `Canvas` mode, pen picking, touch-lock, and transform
|
||||
state mutation continue. `pano_cli plan-canvas-tool-state` exposes the matching
|
||||
toolbar active-state refresh used by `App::update` before legacy `Canvas` mode
|
||||
state remains the source of truth. `NodeCanvas` stylus eraser and `E` key
|
||||
draw/erase mode switching also consume the same app-core command planner before
|
||||
legacy canvas mode execution continues.
|
||||
commands. Canvas tool execution now dispatches through `CanvasToolServices`
|
||||
before legacy toolbar selection, `Canvas` mode, pen picking, touch-lock, and
|
||||
transform state adapters continue. `pano_cli plan-canvas-tool-state` exposes
|
||||
the matching toolbar active-state refresh used by `App::update` before legacy
|
||||
`Canvas` mode state remains the source of truth. `NodeCanvas` stylus eraser
|
||||
and `E` key draw/erase mode switching also consume the same app-core executor
|
||||
before legacy canvas mode execution continues.
|
||||
`pano_cli plan-canvas-clear` exposes app-core planning for the main toolbar
|
||||
clear-current-layer command, including clear color validation, no-canvas
|
||||
handling, undo recording intent, and dirty-state intent; live toolbar execution
|
||||
@@ -1229,7 +1230,8 @@ Results:
|
||||
- `pp_app_core_canvas_tool_ui_tests` passed, covering toolbar mode selection,
|
||||
copy/cut transform action planning, pick no-op outside draw mode, and
|
||||
touch-lock toggling, plus toolbar active-state derivation for draw, copy, and
|
||||
bucket modes.
|
||||
bucket modes, service dispatch ordering, pick no-op execution, and malformed
|
||||
execution payload rejection.
|
||||
- `pano_cli_plan_canvas_tool_draw_smoke`,
|
||||
`pano_cli_plan_canvas_tool_copy_smoke`,
|
||||
`pano_cli_plan_canvas_tool_pick_noop_smoke`,
|
||||
|
||||
Reference in New Issue
Block a user