Files
OneCAD/crates/ui-egui/tests/scenarios/s47_toolbar_drag_from_dropdown.json
T
bherbruckandClaude Opus 5.5 2cac9cad6a Toolbar: drag commands from drop-downs onto the toolbar; pin icon; Customize Toolbar… (#295)
* Toolbar drop-downs highlight the row under the pointer and the keyboard focus (#288)

A panel drop-down's command rows are full-width rows that take the theme's hover background
(icon, label and shortcut on it) when hovered or focused. Up/Down move the focus through the
enabled rows, Enter starts the command, Escape closes the drop-down. Rows publish
`dropdown:<id>` and the highlighted one `dropdown_hot:<id>`; scenario s46 checks pointer and
keyboard highlight.

Fixes #288

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT

* Toolbar: drag commands from drop-downs onto the toolbar; pin icon; Customize Toolbar… (#289)

- A panel drop-down row drags onto the toolbar (a button or a panel's free space, with the
  drop line) and is pinned there; the dragged command's icon follows the pointer.
- A toolbar button dragged off the toolbar, or back into the open drop-down, leaves it (its
  icon shows a cross while releasing would remove it).
- A hovered drop-down row shows a pin at its end: click to pin or unpin.
- Right-click on the toolbar's empty space: Customize Toolbar… (a window listing the tab's
  commands with check boxes, and Reset Toolbar) and Reset Toolbar; command menus have
  Customize Toolbar… too.
- Still per workspace and tab, kept with the preferences. Toolbar buttons also publish
  `button:<id>`; scenario s47 drags a row to the toolbar, unpins by dragging off and into the
  drop-down, uses the pin icon and Customize Toolbar…, and checks it survives a restart.

Fixes #289

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT

* Toolbar drop-down pin: a push pin drawn in code (upright and filled when pinned); control protocol lists the toolbar handles

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 10:27:25 -04:00

120 lines
2.4 KiB
JSON

[
{
"note": "#289: drag a command from a panel's drop-down onto the toolbar to pin it (a drop line shows where), drag a button off the toolbar or back into the drop-down to unpin it, the pin icon on a hovered drop-down row, and Customize Toolbar… in the toolbar's own menu. Kept with the preferences."
},
{
"expect": {
"shown_handles": ["toolbar:solid.extrude"],
"hidden_handles": ["toolbar:solid.sphere", "toolbar:solid.torus"]
}
},
{
"click": {"handle": "panel:SOLID:CREATE"}
},
{
"drag": [{"handle": "dropdown:solid.sphere"}, {"handle": "button:solid.extrude"}],
"steps": 12
},
{
"key": "Escape"
},
{
"expect": {
"hidden_handles": ["dropdown:solid.sphere"],
"handle_order": ["toolbar:solid.sphere", "toolbar:solid.extrude"]
}
},
{
"note": "A button dragged off the toolbar leaves it."
},
{
"drag": [{"handle": "toolbar:solid.sphere"}, [700, 600]],
"steps": 12
},
{
"expect": {
"hidden_handles": ["toolbar:solid.sphere"],
"shown_handles": ["toolbar:solid.extrude"]
}
},
{
"note": "The pin icon on a hovered drop-down row pins the command."
},
{
"click": {"handle": "panel:SOLID:CREATE"}
},
{
"move": {"handle": "dropdown:solid.torus"}
},
{
"expect": {
"shown_handles": ["dropdown_pin:solid.torus"],
"hidden_handles": ["dropdown_pin:solid.box"]
}
},
{
"click": {"handle": "dropdown_pin:solid.torus"}
},
{
"expect": {
"shown_handles": ["dropdown:solid.box"],
"tool": null,
"dialog": null
}
},
{
"key": "Escape"
},
{
"expect": {
"shown_handles": ["toolbar:solid.torus"]
}
},
{
"note": "A button dragged back into its open drop-down leaves the toolbar."
},
{
"click": {"handle": "panel:SOLID:CREATE"}
},
{
"drag": [{"handle": "button:solid.torus"}, {"handle": "dropdown:solid.box"}],
"steps": 12
},
{
"key": "Escape"
},
{
"expect": {
"hidden_handles": ["toolbar:solid.torus", "dropdown:solid.box"]
}
},
{
"note": "Customize Toolbar… in the toolbar's own menu: tick a command."
},
{
"call": "ui.menu",
"params": {"x": 1000, "y": 60, "target": {"type": "toolbar"}}
},
{
"call": "ui.menuPick",
"params": {"item": "Customize Toolbar…"}
},
{
"click": {"handle": "customize:solid.sphere"}
},
{
"expect": {
"shown_handles": ["toolbar:solid.sphere"]
}
},
{
"restart": "close"
},
{
"expect": {
"shown_handles": ["toolbar:solid.sphere", "toolbar:solid.extrude"],
"hidden_handles": ["toolbar:solid.torus"]
}
}
]