Files
graph_explorer/issues/0036f-view-menu-open-nodegroups.md
egutierrez f6f53b60c3 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
2026-05-04 01:12:58 +02:00

64 lines
1.7 KiB
Markdown

---
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).