---
id: 0036c
title: Doble click en Group abre/centra NodeGroups + cleanup del Table panel filter
status: done
priority: high
created: 2026-05-04
parent: 0036
depends_on: [0036a, 0036b]
---

## Objetivo

Cambiar el dispatch del doble click sobre un nodo `Group`: en lugar
de filtrar el panel `Table` generico (logica de 0035d), abre/enfoca
la NodeGroups window correspondiente al Group. Eliminar el filtro
group_id del Table panel para evitar confusion.

## Cambios

### `on_double_click_cb` en `main.cpp`

Hoy hay un branch que detecta `type_ref == "Group"` y setea
`g_app.table_filter_group_id`. Reemplazar:

```cpp
if (type_ref == "Group") {
    ge::node_groups_open(g_app, sql_id, NodeGroupsKind::Group);
    // marcar focus_request en la window devuelta
}
```

Anyadir branch para `type_ref == "Table"` que use kind=Table (igual
que el flow del menu "Open NodeGroups" actual). Nota: hoy Table se
abre desde el menu contextual, no desde doble click. Mantener el
context menu igual; el doble click es nuevo flujo paralelo.

### Eliminar campos AppState ya inutiles

- `app.table_filter_group_id`
- `app.table_filter_group_name`

### Eliminar logica del Table panel generico (`views.cpp::views_table`)

- El bloque del breadcrumb amarillo `Group: <name> (N)` + boton
  `Clear group filter`.
- El filtro `r.group_id != app.table_filter_group_id` en
  `build_visible`.
- La restriccion de `types_present` cuando hay filtro activo.
- El reset del filtro al cerrar el panel (`if (!panel_table) ...`).

El Table panel queda como antes de 0035d: lista de entidades del
grafo, tabs por tipo, search, column filters. Sin drill-in.

### `focus_request` en NodeGroupsWindowState

Para centrar la window al abrirla. Si ya estaba abierta, debe
recibir `ImGui::SetWindowFocus("NodeGroups: <name>")` el frame
siguiente. Implementacion: bool `focus_request` en el state, que el
render consume.

## Acceptance criteria

- Doble click en un Url normal: abre Note como hoy (sin regresion).
- Doble click en un Group: abre NodeGroups window con sus hijos (los
  N-K agrupados, no los preview sueltos), titulo
  `NodeGroups: <group_name>`, y la window queda al frente.
- Si ya estaba abierta, vuelve a centrarse.
- El Table panel generico ya no tiene breadcrumb ni filtro group_id.
  Si lo abres, ves todas las entidades del grafo (incluyendo las que
  estan dentro de grupos — el render filter del canvas las oculta,
  pero la lista del Table panel las muestra todas).
- Tests pytest verdes.

## TBD

Branch `issue/0036c-doubleclick-group-opens-nodegroups`,
merge `--no-ff` a master.

## Out of scope

- Promote en NodeGroups (es 0036d).
- Row click focus (0036e).
- View menu accion (0036f).
