View menu: tree/palette toggle, and Back/Forward through opened sheets
Tree / Palette hides the left column so the wiresheet has the whole window. ttk has no hide flag for a pane, so the column is dropped from the paned window and re-inserted at the front, which is why the configured width is re-applied afterwards. Back and Forward walk the sheets opened this session, with two arrow buttons in a new toolbar on the same commands. History entries hold the element whose children are painted rather than a tree item id: rebuilding the tree hands out fresh ids, while the elements themselves survive. Recording runs from the tree selection handler, the one route every sheet opening takes, and is suppressed while a walk drives that selection so it cannot rewrite its own trail. Opening a different file retires the history; a delete or an undo drops only the entries whose element has left the document, keeping the position on screen. open_file builds the tree inline instead of going through refresh_treeview_from_dom, so it never raised the tree-filled callback and the history had no way to see a new file. It and reset_to_startup_state now fire it, which also gets the tree column fitted on load rather than on the first resize. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -82,10 +82,27 @@ Undoing back to the depth of the last save clears the dirty tint rather than lea
|
||||
| `Ctrl`/`Cmd` + `Z` | Undo |
|
||||
| `Ctrl`/`Cmd` + `Y` or `Ctrl`/`Cmd` + `Shift` + `Z` | Redo |
|
||||
| `Del` / `Backspace` | Delete selected component |
|
||||
| `Ctrl`/`Cmd` + `B` | Show or hide the tree/palette column |
|
||||
| `Alt` + `Left` / `Alt` + `Right` | Back and forward through the sheets opened this session |
|
||||
|
||||
Both `Command-` and `Control-` are bound for each, so the same build works on macOS and
|
||||
Windows; menu accelerators render as `Cmd` or `Ctrl` per platform.
|
||||
|
||||
### The View menu
|
||||
|
||||
**Tree / Palette** hides the left column so the wiresheet has the whole window, and puts
|
||||
it back at its configured width. ttk has no hide flag for a pane, so the column is dropped
|
||||
from the paned window and re-inserted at the front.
|
||||
|
||||
**Back** and **Forward** walk the sheets opened this session, mirrored by the two arrow
|
||||
buttons in the toolbar. The history records the element whose children are painted -- the
|
||||
same thing `app_state.current_sheet_parent` holds -- rather than a tree item id, because
|
||||
rebuilding the tree hands out fresh ids while the elements themselves survive. Opening a
|
||||
different file retires the history; a delete or an undo drops only the entries whose
|
||||
element has left the document, keeping the position on screen. Walking the history drives
|
||||
the tree selection, which is what paints the sheet, and is suppressed from recording so a
|
||||
walk cannot rewrite the trail it is following.
|
||||
|
||||
### Testing without a window
|
||||
|
||||
`app_state`, `sax_dom`, `schema`, `undo` and `wiresheet` import with no display, so the
|
||||
|
||||
Reference in New Issue
Block a user