Tidy Layout as signal flow; fixed-size wiresheet; signed Sox int writes

- Tidy Layout lays linked boxes out left to right by signal flow, in as few
  columns as the longest chain allows; feedback loops are cut where they run
  backwards, and sources sit just before the boxes they feed.
- Boxes with no link on the open sheet go to the bottom of the first column,
  alphabetically.
- A box that wires skipping its column would cross is pushed down below them.
- The wiresheet is fixed at meta's 255-step reach; outside it is light grey.
  Dragging keeps a box's top-left corner on the sheet.
- Sox write_i4 wraps to signed, so meta with x >= 128 reaches the device.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-18 10:15:22 +03:00
co-authored by Claude Opus 5.5
parent 160f65c95e
commit b3d96d96b6
5 changed files with 321 additions and 92 deletions
+2 -2
View File
@@ -180,7 +180,7 @@ def reset_to_startup_state():
if app_state.canvas is not None:
app_state.canvas.delete("all")
wiresheet.draw_grid()
wiresheet.fit_sheet_region()
if app_state.window is not None:
app_state.window.title(app_state.base_window_title())
@@ -223,7 +223,7 @@ def open_file():
for item in tree.get_children():
tree.delete(item)
canvas.delete("all")
wiresheet.draw_grid()
wiresheet.fit_sheet_region()
xml_tree = ET.parse(file_path)
app_state.xml_root_element = xml_tree.getroot()