fix(m179): 复审 r2 —— 订正「Body 带 Lang 之后」残留的六处文档漂移

P2-1:`settings/mod.rs:273`(`AI_GROUP`)还写着「`Group.body` 的签名里没有 `Lang`」,
而同一次提交在同一个文件把槽位改成了 `fn(&Ui, States, Lang)` 并在上方 `GENERAL_GROUP`
按新事实重写 —— 一个文件里两段互相矛盾的说明。本条按新事实重写(行数不变,仍是 389 行)。

一并订正 finding 里剩下的外域漂移(tower 已扩 scope):
- `settings/ai_about.rs:8`(同一句假话的表格行,finding 没列到)与 `:14-16`
- `settings/general.rs:7-11`(槽位现在带 `Lang`,装不下的只剩**档位** `LangChoice`)
- `settings/general.rs:287`、`settings/update.rs:5`、`pages/mod.rs:271`、
  `settings/language_appearance.rs:20` 的 `pages/appearance/section.rs` 路径

措辞与复审建议的一处偏离(已在提交与报告里说明):复审建议写「槽位给不了『测试连接』的
结论」,与实现不符——该结论在 `States.groups.ai_about` 里,槽位拿得到;AI 组仍按下标分发
的真实原因是**尚未迁移**(槽位要 `Option<Element>`,`ai::view::body` 返回 `Element`)。

零代码改动:本提交所有变更行都是以 `//!` / `///` 开头的文档行
(`git diff -U0 | grep '^[+-]' | grep -vE '^[+-]+\s*//[/!]'` 为空)。
按 tower 要求**不动** `crates/i18n/src/catalog/settings/appearance.rs:8`(M180 正在改)。

验证:cargo fmt --all --check → 0;cargo check -p unlucky-app-iced --all-targets → 0;
cargo clippy -p unlucky-app-iced --all-targets -D warnings → 0;
cargo test -p unlucky-app-iced --lib appearance → 0(37 passed)。
This commit is contained in:
AskaEth committed 2026-11-08 21:01:25 +08:00
1 parent b457f0acc8
commit ca92014b81
6 files changed
+20 -18

No files matched your search

@@ -4,10 +4,11 @@
//!
//! ## 这一组为什么特殊
//!
//! 它**不走** `Group::body`:那个渲染器的签名是 `fn(&Ui, States) -> Option<Element>`,`States` 只有
//! `appearance` + `groups` 两格,装不下「当前语言档位 + 生效语言」。语言行要的两件在
//! `pages::Language` 里,由 `pages::settings::view` 的 `language` 形参一路递进来、`form` 按下标
//! 转交 [`body`];所以 `GROUP.body` 仍是 `None`,`tests/mod.rs` 那条「只有外观组带真控件」照样成立。
//! 它**不走** `Group::body`:那个渲染器拿的是 [`States`](super::States) 与**生效语言** `Lang`
//! (M179 起;此前连 `Lang` 都没有),而语言行要的是「当前语言**档位** `LangChoice` + 生效语言」
//! 这一对——档位不在 `States` 里。所以它由 `pages::settings::view` 的 `language` 形参一路递进来、
//! `form` 按下标转交 [`body`];`GROUP.body` 仍是 `None`,`tests/mod.rs` 那条「只有外观组带真控件」
//! 照样成立。
//!
//! ## 语言切换**没有**走 M101 的 `GroupMessage` 投递口(偏离,已登记)
//!
@@ -284,7 +285,7 @@ fn setting_row<'a>(ui: &'a Ui, label: &'a str, value: &'a str) -> Element<'a, Me
/// 一个互斥按钮(选中态 `SecondaryContainer`,未选中透明 + `OnSurfaceVariant`)。
///
/// 与 `pages/appearance/section.rs` 的 `choice` 同款,但文案来自 catalog(那份是英文基线)。
/// 与 `pages/appearance/section/mod.rs` 的 `choice` 同款,但文案来自 catalog(那份是英文基线)。
fn chip<'a>(ui: &'a Ui, text: &'a str, selected: bool, choice: LangChoice) -> Element<'a, Message> {
let height = ui.metrics().control_height;
let content_color = if selected {