pf_app
The stepper's depth and ViewConfig's group_by_depth/split_by_depth are the same unit -- a count of levels to show -- but applyDepth and applySplitDepth sent d + 1 and every readback subtracted the same 1. Self-consistent, so the toolbar always agreed with itself, and off by one against the grid at every position: picking partgroup showed one level past it. server.cpp turns group_by_depth into set_depth(n - 1) and t_traversal::set_depth adds the 1 back, so n asks for n levels. The +1 existed to dodge depth 0, which reaches the engine as set_depth(-1) on an unsigned t_depth, underflows, and clamps to fully expanded. The value is floored at 1 instead, so the stepper's "Total" slot goes on showing the first level as it always has -- the wart is kept deliberately rather than traded for the underflow. A bare total needs group_rollup_mode. Separately: fitRowLabels() has been written and unused since it was judged to read worse than the default spacing. That judgement has changed -- row labels come back clipped after a restore -- so it is now called after both restore paths, initViewer and applyLayout. It is not routed through the Fit widths button on purpose: that path goes via regular-table's auto-size, which measures the leaf header's rendered box over viewport rows only, while fitRowLabels canvas-measures the label text. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| lib | ||
| public | ||
| routes | ||
| setup_sql | ||
| ui | ||
| .env.example | ||
| .gitignore | ||
| CLAUDE.md | ||
| install.sh | ||
| package-lock.json | ||
| package.json | ||
| PERSPECTIVE.md | ||
| pf_perspective_options.md | ||
| pf_spec.md | ||
| pf.sh | ||
| server.js | ||