Files
Unlucky-Launcher/crates/app-iced/src/pages/settings/language_appearance.rs
T
AskaEth ca92014b81 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)。
2026-11-08 21:01:25 +08:00

36 lines
2.2 KiB
Rust
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//! 设置页 language+appearance 线的**消息口 + 状态口**(M101 `SETTINGSMSG`)。
//!
//! 为什么另开一个文件而不是塞进 `general.rs`:这一条线管**两个分组**(General 的语言 / 主题 /
//! 启动页 / 关闭按钮,Appearance 的密度 / 圆角 / 动效 / 文字缩放)。两个分组各有自己的正文文件
//! (`settings/general.rs`、`settings/appearance.rs`),消息与状态却只能有一个类型挂到
//! [`GroupMessage::LanguageAppearance`](super::GroupMessage::LanguageAppearance) /
//! [`Groups::language_appearance`](super::Groups) 上——否则 `GroupMessage` 与 `Groups` 会多出第五个
//! 槽位,本线就要改 `settings/message.rs` / `settings/state.rs`(共享文件)。
//!
//! ## 本线的文件集合(只归本线,四条线两两不相交)
//!
//! | 文件 | 作用 |
//! |---|---|
//! | 本文件 | 消息枚举 + 状态结构(加一支消息 / 一个字段只改这里) |
//! | `settings/general.rs` / `settings/appearance.rs` | 两个分组各自的 `GROUP`(名字 / 图标 / 行 / body) |
//! | `settings/tests/general_section.rs` / `settings/tests/appearance_section.rs` | 两组的独立断言 |
//! | `crates/i18n/src/catalog/settings/general.rs` / `appearance.rs` | 两组的文案 key |
//! | `crates/app-iced/src/app/update/settings/language_appearance.rs` | 消息的落点 |
//!
//! 真控件那半边在 `pages/appearance/section/`(`appearance.rs` 只负责把 `body` 挂上去)。
/// 语言 + 外观线的状态(**只归本线**)。
///
/// 首版是空结构:这一条线还没有自己的运行期状态(外观那份状态是 `pages::appearance::State`,
/// 归 M93,走 `States::appearance` 那条既有通道,不在这里)。加字段只改本文件。
#[derive(Debug, Default)]
pub struct State {}
/// 语言 + 外观线的消息(**只归本线**)。
///
/// 首版是空枚举:这一条线还没有接真下拉 / 真控件之前,没有可点的东西。空枚举的好处是
/// `app/update/settings/language_appearance.rs` 里的 `match message {}` 天然穷尽——加了变体
/// 不接线就报 E0004,不会静默。
#[derive(Debug, Clone)]
pub enum Message {}