feat(0036f): view menu accion 'Open NodeGroups for selected'
Anyade un item al menu View del framework via el nuevo callback AppConfig.view_extras. El item: - Esta enabled solo si la seleccion del viewport (o, en su defecto, el inspector) apunta a un nodo con type_ref Table o Group. - Click → resuelve sql_id via entity_index_lookup, deriva NodeGroupsKind del type_ref y llama views_node_groups_open(g_app, sql_id, kind, ops_db). La API marca focus_request=true (cubierto por 0036c), de modo que la window emerge al frente si ya existia. - Disabled → tooltip 'Select a Table or Group node first' (mostrado con AllowWhenDisabled). Sin atajo de teclado (descartado por el usuario). Sin submenu de windows abiertas (fase 2). Refs: issues/0036f-view-menu-open-nodegroups.md
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
---
|
||||
id: 0036f
|
||||
title: View menu accion "Open NodeGroups for selected"
|
||||
status: done
|
||||
priority: low
|
||||
created: 2026-05-04
|
||||
parent: 0036
|
||||
depends_on: [0036b, 0036c]
|
||||
---
|
||||
|
||||
## Objetivo
|
||||
|
||||
Acción puntual en el menú View que abre/enfoca la NodeGroups window
|
||||
del nodo seleccionado en el viewport. Sin atajo de teclado por ahora.
|
||||
No es un toggle de panel (las windows son por entidad, multiples
|
||||
abiertas simultaneamente).
|
||||
|
||||
## Cambios
|
||||
|
||||
### `views_toolbar.cpp` (o donde vive el menu View)
|
||||
|
||||
Anyadir item:
|
||||
|
||||
```
|
||||
[ ] View
|
||||
...existing items...
|
||||
--- Drill-in ---
|
||||
Open NodeGroups for selected (deshabilitado si selected
|
||||
no es Table ni Group)
|
||||
```
|
||||
|
||||
Comportamiento:
|
||||
- Si hay un nodo seleccionado con `type_ref == "Table"` o `"Group"`:
|
||||
llamar a `node_groups_open(g_app, sql_id, kind)` con kind
|
||||
derivado del type_ref. Marcar `focus_request = true`.
|
||||
- Si la seleccion es de otro tipo o no hay seleccion: item
|
||||
deshabilitado con tooltip
|
||||
`"Select a Table or Group node first"`.
|
||||
|
||||
### Actualizar list de panels en menu
|
||||
|
||||
`g_panels[]` array no se toca — NodeGroups no es panel toggleable.
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- Sin nodo seleccionado: item disabled con tooltip explicativo.
|
||||
- Selected = Url: item disabled con tooltip.
|
||||
- Selected = Group: click abre window, queda al frente.
|
||||
- Selected = Table: igual.
|
||||
- Si la window ya existia abierta: el click la enfoca.
|
||||
- No hay regresion en otros items del menu View.
|
||||
- Tests pytest siguen verdes (no requiere tests UI).
|
||||
|
||||
## TBD
|
||||
|
||||
Branch `issue/0036f-view-menu-open-nodegroups`, merge `--no-ff` a
|
||||
master.
|
||||
|
||||
## Out of scope
|
||||
|
||||
- Atajo de teclado (lo dejamos para otra fase si surge friccion).
|
||||
- Submenu con lista de NodeGroups abiertas (fase 2 si llegan a ser
|
||||
muchas).
|
||||
Reference in New Issue
Block a user