Skip to content

feat: Preferences page with project metadata, autosave, and editor se… - #5

Merged
john-basilio merged 1 commit into
mainfrom
feat/story-node-blocks
Jul 15, 2026
Merged

feat: Preferences page with project metadata, autosave, and editor se…#5
john-basilio merged 1 commit into
mainfrom
feat/story-node-blocks

Conversation

@john-basilio

Copy link
Copy Markdown
Owner

Preferences page

Settings tab is now Preferences, with three sections.

Project

  • Author, comment, and a new repository link — saved in the project file, marks it unsaved like any edit
  • Older project files load fine without the new field

Development

  • Autosave toggle + interval (1–60 min) — only saves when there are unsaved changes and the project has a path; never opens a dialog
  • Reopen last project on launch toggle

Editor

  • Zoom sensitivity slider; zoom is now animated (~120ms glide per tick) and the range is 0.2–3.0
  • Collapsed preview lines for editor bubbles (2–20)
  • Confirm before deleting — separate toggles for nodes, characters, and blocks; every delete dialog gets a "Don't ask again" checkbox that flips its toggle
  • Language switcher — applies live and at startup; Help → Language jumps here and highlights the row

All app-level settings persist via cosmic-config with backward-compatible defaults.

…ttings

The Settings nav page becomes a real Preferences page with three
sections. Project holds per-project metadata (author, comment, and a
new repository link on ProjectData) that dirties the project like any
other edit. Development adds an autosave toggle with a 1-60 minute
interval — it only fires while the project is dirty and already has a
path, never raising a dialog — plus a toggle for reopening the last
project on launch. Editor covers zoom sensitivity, collapsed preview
lines for the node editor's bubbles, per-entity delete confirmations,
and a language switcher.

Canvas zoom is now animated (each wheel tick glides ~120ms, chaining
from the in-flight target), with the range tightened from 0.1-4.0 to
0.2-3.0 and sensitivity read from config. Delete confirmations gain
separate toggles for nodes, characters, and blocks (blocks default
off, matching prior behavior — they also gain their own dialog for
when it's on), and every confirm dialog carries a "Don't ask again"
checkbox that flips the matching toggle when confirmed. The language
override is read before i18n init at startup and applies live when
switched, refreshing menus and nav labels; Help gains a Language item
that jumps to Preferences and pulses the language row with the
Find-style glow.

App-level values persist through cosmic_config with backward-
compatible defaults; f32-ish settings are stored as integer percents
to satisfy the config entry's Eq requirement.
@john-basilio
john-basilio merged commit 7ba3eef into main Jul 15, 2026
1 check passed
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.

1 participant