feat(toolbar): Layout dropdown + Physics toggle, default fixed/paused

Cambios de UX en la toolbar y arranque:

- Boton 'Layout: <name>' que abre popup con la lista de layouts (force,
  grid, circular, radial, hierarchical, fixed) + 'Reset positions
  (unpin + restart)' + 'Save current layout'. Reemplaza el combo
  pequeno + los botones Save/Reset que estaban dispersos.

- Boton 'Physics: ON/OFF' (Player Play/Pause) toggle visible que
  reemplaza el checkbox 'Run layout'. Variant Primary cuando ON,
  Subtle cuando OFF.

- Default: layout_mode = 5 (fixed) y layout_running = false. Asi al
  abrir un proyecto los nodos respetan posiciones guardadas y no se
  mueven solos. El usuario activa fisicas con el boton Physics y/o
  cambia el layout desde el dropdown si quiere.

Reset layout (boton dentro del popup Layout) sigue activando physics
para que el grafo se reasiente; es el flujo natural del 'Reset'.
This commit is contained in:
2026-05-01 16:54:27 +02:00
parent 4e0c759b75
commit 87a554da84
3 changed files with 47 additions and 21 deletions
+4 -1
View File
@@ -24,7 +24,10 @@ struct AppState {
// Layout activo — default grid (1) para que los grafos cargados de
// operations.db se distribuyan ordenadamente al abrir.
int layout_mode = 1; // 0=force, 1=grid, 2=circular, 3=radial, 4=hierarchical, 5=fixed
// Default: fixed (5) — respeta posiciones guardadas y physics off por
// defecto. El usuario activa fisicas con el boton Physics y/o cambia
// layout desde el dropdown Layout en la toolbar.
int layout_mode = 5; // 0=force, 1=grid, 2=circular, 3=radial, 4=hierarchical, 5=fixed
int apply_layout_tick = 0; // se incrementa cuando hay que reaplicar layout
bool want_unpin_all = false; // Reset layout: limpia NF_PINNED y reaplica