From 1cb36da1e2c6718781daefbf6d84e37c483ef9bc Mon Sep 17 00:00:00 2001 From: AskaEth Date: Wed, 4 Nov 2026 22:02:24 +0800 Subject: [PATCH] =?UTF-8?q?docs(presenter):=20M116=20r4=20P3=20=E2=80=94?= =?UTF-8?q?=E2=80=94=20settings=5Fbridge=20=E7=9A=84=E3=80=8C=E4=B8=89?= =?UTF-8?q?=E4=B8=AA=E9=94=AE=E3=80=8D=E6=BC=82=E7=A7=BB=E5=AF=B9=E9=BD=90?= =?UTF-8?q?=E5=88=B0=E5=9B=9B=E4=B8=AA=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AppearanceBase 自 M116 起有四个字段(整窗 α / 标题栏三态 / 配色来源 / 窗口圆角), load_base 的文档与测试名还写着「三个键」。只改注释与测试函数名,行为零改动。 --- crates/presenter/src/settings_bridge.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/crates/presenter/src/settings_bridge.rs b/crates/presenter/src/settings_bridge.rs index 50df91c..3b9021c 100644 --- a/crates/presenter/src/settings_bridge.rs +++ b/crates/presenter/src/settings_bridge.rs @@ -101,12 +101,13 @@ impl SettingsBridge { ) } - /// 外观**下层**的只读快照(D36·D37·D38):整窗 α / 标题栏三态 / 配色来源档。 + /// 外观**下层**的只读快照(D36·D37·D38 · M116):整窗 α / 标题栏三态 / 配色来源档 / + /// 窗口圆角策略(`AppearanceBase` 的**四个**字段)。 /// /// 为什么不并进 [`SettingsBridge::load`] 的返回值:那个结构体(`AppearancePrefs`)是 - /// **UI 写入用**的(每个字段都会被 `persist` 回写),而这三个键**只读不写**—— + /// **UI 写入用**的(每个字段都会被 `persist` 回写),而这**四个**键**只读不写**—— /// 落盘走 core 的 `Appearance::write`。并进去会让每个 `AppearancePrefs` 构造点都要补字段, - /// 还会让「这三项只读」这件事在类型上消失。 + /// 还会让「这四项只读」这件事在类型上消失。 /// /// UI 侧(`crates/app-iced`)拿它读启动值:`app-iced` 不直接依赖 `unlucky-core`, /// 所以「把 core 的 `SettingDocument` 翻译成只读快照」这一步必须留在本 crate。 @@ -311,13 +312,13 @@ mod tests { assert!(!appearance.bg_active(), "路径空也不算生效"); } - /// `load_base()` 是「重启后读回整窗 α / 配色来源」的唯一通道(M93)。 + /// `load_base()` 是「重启后读回整窗 α / 配色来源 / 窗口圆角」的唯一通道(M93 · M116)。 /// /// 抓得住:①文件里写着 `window_opacity=0.6` / `palette_source=wallpaper` 时能被**新开的** /// bridge 读到(= 重启语义);②缺键时回出厂(1.0 / preset),而不是 `0.0` 或随机档。 /// 抓不住:UI 侧是否真的用它来下发窗口 α(那由 `app-iced` 的日志与单测证明)。 #[test] - fn load_base_reads_the_three_read_only_keys_and_defaults_when_missing() { + fn load_base_reads_the_four_read_only_keys_and_defaults_when_missing() { let path = temp_config("base"); // 文件由「外部写者」(CLI / AI / 设置页的 SetSetting)产生,这里直接落 JSON。 std::fs::write(