docs(0036c): mark issue as done
This commit is contained in:
@@ -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: <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).
|
||||
Reference in New Issue
Block a user