cad-editor/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Hakan Seven dc7117f203 refactor(config): consolidate settings into one grouped settings.json
App preferences were spread across six flat plain-text files (settings.txt,
recent.txt, recent_limit.txt, statusbar.txt, ribbon.txt, plot.txt), each with a
bespoke line parser and no grouping. Replace them with a single grouped JSON,
serialized via serde (enabling the derive feature; serde_json was already a
dependency).

- New app/config.rs: AppConfig { settings, recent, statusbar, ribbon, plot } →
  <config>/settings.json (pretty JSON), load()/save().
- Make UserSettings, StatusBarConfig/StatusPill, CollapseMode and
  PlotDialogState serde-derived; #[serde(skip)] marks the plot dialog's runtime
  fields so only print preferences persist. Their bespoke .txt load/save is
  removed.
- App gains current_config/apply_config/save_config: one AppConfig::load at
  startup distributes into live state; every settings-change site
  (persist_settings_if_changed, recent add/remove/limit, status-bar pill
  toggle, ribbon density, plot commit) routes through save_config, which diffs
  against the last write to avoid thrashing.
- Clean start: the old flat files are ignored (no migration). ocad.pgp stays a
  separate hand-editable file.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-10 16:41:34 +03:00
..
app refactor(config): consolidate settings into one grouped settings.json 2026-07-10 16:41:34 +03:00
entities feat(hatch): editable gradient colors + background color 2026-07-08 23:35:27 +03:00
io feat(plot): unified plot/print dialog, retire Page Setup 2026-07-09 10:27:54 +03:00
modules fix(offset): allow OFFSET of XLINE (and Ellipse/Spline) objects (#296) 2026-07-10 13:40:09 +03:00
plugin feat(plugin): surface loaded plugin commands in command-line autocomplete 2026-07-04 23:01:53 +03:00
scene feat(sysvars): persist Ortho, running OSNAP and Isolate in the drawing 2026-07-10 15:45:08 +03:00
shaders refactor(pipeline): name the real hatch renderer hatch_gpu, legacy → wipeout_gpu 2026-07-09 10:45:40 +03:00
ui refactor(config): consolidate settings into one grouped settings.json 2026-07-10 16:41:34 +03:00
cli.rs Initial commit 2026-06-25 00:01:36 +03:00
command.rs fix(stretch): free crossing-window corners from Ortho, draw filled marquee (#291) 2026-07-10 13:32:32 +03:00
config.rs feat(ui): ribbon collapse-mode selector + start-page recent controls 2026-07-06 01:06:01 +03:00
lib.rs feat(ui): ribbon collapse-mode selector + start-page recent controls 2026-07-06 01:06:01 +03:00
main.rs feat(ui): ribbon collapse-mode selector + start-page recent controls 2026-07-06 01:06:01 +03:00
par.rs feat(wasm): sequential rayon shim for the web build 2026-06-16 17:11:20 +03:00
patreon.rs feat(supporters): merge hand-maintained supporters, rank by amount 2026-07-08 00:32:12 +03:00
snap.rs fix(snap): Intersection requires a real 3D meeting, not a plan crossing (#335) 2026-07-10 13:05:48 +03:00
sys.rs fix(web): paste clipboard text into the TEXT / MText editors 2026-06-20 17:05:02 +03:00