feat(table-ux): selectable rows + tables dropdown + filtros por columna

Tres cambios pequenos relacionados con la UX de las tablas:

1. fix views_table_window: la fila usaba TextUnformatted en col 0 que
   no registra hover/double-click sobre toda la fila. Reemplazado por
   ImGui::Selectable con SpanAllColumns + AllowDoubleClick — ahora el
   doble-click sobre fila no promovida promueve, sobre promovida abre
   Inspector. El popup right-click tambien funciona ahora.

2. Toolbar 'Tables (N)' dropdown que lista las Table windows abiertas
   con checkbox. Desmarcar = colapsar (cerrar ventana + expanded=false).
   Tambien tiene 'Collapse all' al final.

3. views_table (issue 0004) — filtros por columna:
   - Right-click sobre header de columna abre popup con InputText.
   - Apply / Clear / Enter aceptan y guardan en table_col_filters.
   - Chips arriba de la tabla con cada filtro activo + X para quitar.
   - Boton 'Clear all'.
   - build_visible aplica los filtros con substring case-insensitive.
This commit is contained in:
2026-05-01 02:16:14 +02:00
parent 9daf007e57
commit c9d958f1c0
2 changed files with 159 additions and 3 deletions
+6
View File
@@ -204,6 +204,12 @@ struct AppState {
char table_search_buf[96] = {};
bool table_show_all = false;
int table_active_tab = 0;
// Filtros por columna: column_user_id (0..5) -> substring filter.
// Visible UX: right-click sobre header de columna abre popup con input;
// chips con filtros activos por encima de la tabla.
std::unordered_map<int, std::string> table_col_filters;
char table_filter_input[96] = {}; // buffer del popup activo
int table_filter_pending_col = -1; // col_user_id en edicion
// ---- Type Editor (issue 0007) ------------------------------------------
// Draft del editor de tipos. Se inicializa con una copia de parsed_types