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)。
36 lines
2.2 KiB
Rust
36 lines
2.2 KiB
Rust
//! 设置页 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 {}
|