Skip to content

Persist navigation expansion and pane layout - #53

Merged
emsi merged 2 commits into
masterfrom
feature/38-persist-navigation-layout
Aug 16, 2026
Merged

Persist navigation expansion and pane layout#53
emsi merged 2 commits into
masterfrom
feature/38-persist-navigation-layout

Conversation

@emsi

@emsi emsi commented Aug 15, 2026

Copy link
Copy Markdown
Owner

Summary

  • persist notebook and section-group expansion by stable, source-scoped identity
  • restore the collapsed state of the Notebooks and Pages panes
  • preserve the last page when a section moves or its legacy position-derived ID changes
  • tolerate legacy, malformed, and unsupported optional UI state without losing the workspace

Motivation

OneNote Viewer already restored open sources and the last page, but every restart reset the navigation tree and pane layout. The prior section and group IDs were derived from tree positions, so they were also unsuitable for durable UI state: renaming, moving, or reordering an entry could redirect saved state.

This change adopts native OneStore file identities exposed by onenote.rs, scopes them to each source, and stores UI state in an optional versioned workspace record. Missing groups and closed or failed sources are pruned. Delayed source loading applies state only to the matching source and cannot replace a newer active selection.

The parser API is proposed upstream in msiemens/onenote.rs#45. Until that is merged together with the viewer's existing image/icon dependency, the viewer pins a signed integration revision from the project fork.

User impact

After restarting, the viewer restores expanded notebooks and section groups as well as collapsed navigation panes. Existing workspace files continue to load with the established defaults.

Closes #38.

Verification

  • cargo test --workspace --all-targets
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo fmt --all -- --check
  • git diff --check

@emsi
emsi marked this pull request as ready for review August 16, 2026 15:01
@emsi
emsi merged commit 7dcbe08 into master Aug 16, 2026
4 checks passed
@emsi
emsi deleted the feature/38-persist-navigation-layout branch August 16, 2026 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Persist navigation expansion and pane layout across restarts

1 participant