mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 20:37:33 +00:00
2c356beb77753fbf2009f77adc50f589951c313c
MakeGlobalSettings (the central persist builder, ~50 fields) lived in MainForm and mixed radio state with UI fields, blocking headless persistence. Replace it with TRadioController.BuildGlobalSettings (radio fields from live state) + SaveGlobalSettings (self-gated on FDevConnected). The 7 scattered SaveGlobal(FDevMAC, MakeGlobalSettings) call-sites collapse to FController. SaveGlobalSettings. Non-radio fields (theme/FPS/MHz-digits/CAT) are NOT controller state — they ride through FLoadedGlobal (the loaded persist record the controller already holds for round-trip). The GUI mirrors them into FLoadedGlobal at their change-points (SetLightTheme/ApplyFPS/ApplyFreqMhzDigits/OnCATSettingsChange + connect for the app-global theme). Controller never reads or acts on them. Behavior-preserving (same blob, same save points); makes the daemon able to persist radio settings without the UI. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Languages
Pascal
96.4%
Python
2.9%
Shell
0.6%