--- 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: (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: ")` 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: `, 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).