From 98e744ea4e94b391b08f7b69feae9b31df3a2ec9 Mon Sep 17 00:00:00 2001 From: Egutierrez Date: Mon, 4 May 2026 00:56:50 +0200 Subject: [PATCH] docs(0036c): mark issue as done --- ...36c-double-click-group-opens-nodegroups.md | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 issues/0036c-double-click-group-opens-nodegroups.md diff --git a/issues/0036c-double-click-group-opens-nodegroups.md b/issues/0036c-double-click-group-opens-nodegroups.md new file mode 100644 index 0000000..102f9fd --- /dev/null +++ b/issues/0036c-double-click-group-opens-nodegroups.md @@ -0,0 +1,83 @@ +--- +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).