M201 r2: 修视觉 r1 的两条 P2 + 代码复审的坏值提示 p2
视觉 r1(fix-then-merge):
- P2-1 分隔线贴字:downloaded 组的行间距从 0 改成 `Space::X3`(12dp)。实测
说明末行→分隔线 1–3px → **12–13px**、分隔线→下一标题 4–5px → **12–17px**
(同族页 9–18px;同一把尺子量演示回退卡 16–19px)。不动 `frame::divider` /
`demo_card`;`spacing` 只作用于子节点之间,卡片首行顶距与末行底距仍是 20。
- P2-2 孤字「效」:`with_note` 把「原值 X 已按出厂 N 生效」从说明段落里挪到
**独立一行**(`\n` 分隔,渲染器按行断)。浅/深/窄三张复验:无 <20px 窄行。
两种措辞(出厂 8 / 已按 1)一字未改,presenter 侧新增 `ends_with("\n原值 …")`
断言把「独占一行」钉住。
代码复审 p2(非整数坏值被静默丢掉):
- `raw_int`(`Value::as_i64`)→ `raw_text`:文件里显式写过的原值转**上屏文本**
(字符串取原文不带 serde 引号、数字/布尔 `to_string`、`null` 当没写)。
于是 `"auto"` / `8.5` / `true` / `-4` 都能进那句提示,不再「画着 8 却说不出
用户写的 auto 被忽略」。
- 新用例 `every_bad_value_shape_says_what_the_raw_value_was`:负整数 / 字符串 /
浮点 / 布尔 / null 五种形态。
验证:fmt --all --check / check -p unlucky-app-iced --all-targets /
test -p unlucky-app-iced(845+6) / test -p unlucky-presenter(316) /
test -p unlucky-i18n(36),全部 EXIT=0。
This commit is contained in:
1 parent
ab573838f3
commit
5dda9ac31d
3 files changed
+151
-9
No files matched your search
@@ -167,11 +167,23 @@ fn msg(message: Message) -> PageMessage {
|
||||
/// 整组正文:快照里按 [`GROUP_ID`] 找到本组,一行一个控件。
|
||||
///
|
||||
/// 返回 `None` = 这一帧没有本组的快照(harness / 首帧)⇒ `settings/mod.rs` 退回 `GROUP.rows`。
|
||||
///
|
||||
/// **行间距 = `Space::X3`(M201 r1 视觉复审 P2-1)**:分隔线的对比度只有 1.55:1(`OutlineVariant`
|
||||
/// 本色,正常),「这是新的一行」这件事全靠**间距**承担。r1 复审实测这一组原本是 0 间距:说明末行
|
||||
/// 墨迹 → 分隔线只有 2–3px、分隔线 → 下一行标题 4–5px,100% 缩放下「地区判定」「镜像偏好」被读成
|
||||
/// 上一段说明的续行。
|
||||
///
|
||||
/// 为什么是 X3(12)而不是兄弟组的 X2(8):本组每一行都是「标题 + 控件 + 多行说明」三段,比 Java
|
||||
/// 组的行**密得多**,沿用 8 实测只到 8–9px(文本盒里 12–13px 的墨迹落在 16px 行盒中,盒间距 8 会被
|
||||
/// 吃掉 1px);X3 把两侧都推到 12px 以上,落在「同族页 9–18px」的中段(实测见报告的表)。
|
||||
///
|
||||
/// 为什么不给 [`block`] 加 padding:那会把卡片的**第一行顶距**也撑开(卡内边距 20 + 12),与其它四组
|
||||
/// 的第一行不再对齐;`spacing` 只作用在子节点之间,首行顶距与末行底距仍是卡片的 20。
|
||||
fn body<'a>(ui: &'a Ui, states: States<'a>, lang: Lang) -> Option<Element<'a, PageMessage>> {
|
||||
let group = state_group(&states)?;
|
||||
let drafts = &states.groups.download;
|
||||
let catalog = lang.catalog();
|
||||
let mut stacked = column![].spacing(0.0).width(Length::Fill);
|
||||
let mut stacked = column![].spacing(ui.space(Space::X3)).width(Length::Fill);
|
||||
|
||||
for (index, item) in group.rows.iter().enumerate() {
|
||||
if index > 0 {
|
||||
|
||||
Reference in new issue
Block a user