feat(tahuantinsuyu): fase 2 — CRUD UX sobre el tree (menú, modales, form natal)
Right-click sobre el explorador izquierdo abre menú contextual cuyas opciones dependen del target (raíz, group, contact o chart). Modales flotantes para crear/renombrar usando yahweh-widget-text-input; un form más completo de 11 campos para la birth data al crear cartas natales. Borrar pide confirmación por window.prompt nativo. - tahuantinsuyu-store: rename_contact, rename_chart, move_group, move_contact (los `move_*` para fase posterior de drag-to-nest). - tahuantinsuyu-tree: estado interno (Menu, Modal enum, ChartForm), handlers de ContextMenuRequested, render overlays. Soporta seis modales: rename de g/c/h, create group/contact, form natal completo con parseo + reporte de errores inline. Auto-expande el contact tras crear una carta. Nuevo evento TreeEvent::HierarchyChanged tras cada mutación. - shell: maneja HierarchyChanged sin propagar selección. `cargo check` y `cargo test` verdes. Fase 3 viene con engine real contra eternal-astrology + pintado de la rueda. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -82,6 +82,14 @@ impl Shell {
|
||||
let selection = match ev {
|
||||
TreeEvent::Selected(s) => s,
|
||||
TreeEvent::Opened(s) => s,
|
||||
TreeEvent::HierarchyChanged => {
|
||||
// El tree ya hizo refresh internamente; el canvas/panel
|
||||
// se enteran cuando llegue una nueva Selección. Fase 3
|
||||
// podría re-disparar la última selección para que el
|
||||
// thumbnail grid se actualice si era una vista de grupo.
|
||||
cx.notify();
|
||||
return;
|
||||
}
|
||||
};
|
||||
self.apply_selection(selection.clone(), cx);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user