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 -2
View File
@@ -216,11 +216,13 @@ static bool load_input() {
g_app.types_dirty = false;
g_app.types_save_error.clear();
// Restablecer viewport state (preserva camara user-visible)
// Restablecer viewport state (preserva camara user-visible). Physics
// arrancan en pausa para que las posiciones guardadas no se pierdan;
// el usuario las activa con el boton Physics de la toolbar.
g_viewport.selection.clear();
g_viewport.hovered_node = -1;
g_viewport.selected_node = -1;
g_viewport.layout_running = true;
g_viewport.layout_running = false;
g_viewport.layout_energy = 0.0f;
// Posicionar nodos: si todos tienen (x,y)=0, aplicar layout circular como