fix(app-iced): 选项区变高时与版本列表对半分(S1)+ 中英出图注入 + 注释同步
D30 r1 视觉驳回的三条里,代码能修的两条: 1. **S1 版面**:带加载器版本列表的选项区在三栏档把版本列表从 6.0 行压到 2.4 行(1180×760 实测 278px→110px,底缘切在第三行图标上)。`rows::TailShare::of` 现在让这类面板在**任何档位** 都与列表对半分(`scrollable` 分支早已存在),另把加载器版本菜单改成**按条目数**占高 (1 条 64px / 2 条 112px,原先只有 1 条也固定撑两行)。实测:列表回到 **245px = 5.3 行**。 2. **注释同步(S6)**:`options/view.rs` 模块头原先写「加载器分成两行」+ 两行示意,实际是 六枚一行(末枚右缘约 404px / 正文列 424);那条「本轮无看图通道,未出截图」也换成实测值。 顺带(使能中文出图):`pages/mod.rs::demo_model` 读 `ULL_DL_LANG=zh` 把 `model.lang` 与下载页 目录一起切中文。之前 `LC_ALL=zh_CN.UTF-8` 对出图**完全无效**——页面文案来自 `model.lang`, 而 `Model::new` 写死 `En`、`demo_model` 不碰它(`i18n::detect_env` 不在这条链上)。 测试:`options/s1_tests.rs` 新增两条(菜单只按整行占高;带版本列表的选项区在每个档位都 Shared, 原版/不兼容仍 Pinned),`-p unlucky-app-iced` 862 passed。 未完成:S2 窄窗「滚到底」图——iced 0.14 没有自由函数 `scroll_to`,程序化滚动要手写 `widget::Operation`(约 40 行),本轮不拿半成品充数;面板 `scrollable` 的稳定 Id 已就位。
This commit is contained in:
1 parent
841c17152a
commit
cd7813f8eb
7 files changed
+162
-18
No files matched your search
@@ -111,6 +111,7 @@ pub(super) fn content<'a>(
|
||||
let tail: Element<'a, Message> = match share {
|
||||
TailShare::Pinned => tail,
|
||||
TailShare::Shared => scrollable(tail)
|
||||
.id(iced::widget::Id::new(PANEL_SCROLL_ID))
|
||||
.height(Length::Fill)
|
||||
.style(frame::scroll_style(ui))
|
||||
.into(),
|
||||
@@ -129,6 +130,12 @@ pub(super) fn content<'a>(
|
||||
.into()
|
||||
}
|
||||
|
||||
/// 面板那一层 `scrollable` 的 Id(M222 D30 r1 S2 的出图取证用,见 `pages::harness`)。
|
||||
///
|
||||
/// 用途只有一个:窄窗(chips 档 / 带版本列表的选项区)里面板自己可滚,出图要证明
|
||||
/// 「实例名那格滚得到」——harness 拿到这个 Id 就能派一次 `scroll_to` 再拍。
|
||||
pub(crate) const PANEL_SCROLL_ID: &str = "download-panel";
|
||||
|
||||
/// 列表与尾部面板怎么分这块高度(M125 缺陷 1 的修法)。
|
||||
///
|
||||
/// | 档 | 分法 | 为什么 |
|
||||
@@ -159,11 +166,16 @@ impl TailShare {
|
||||
/// 掉到 **4 整行**、下半块留 ≈160px 空画布(r1 复审 P2-1 实测:main 在 700×760 的
|
||||
/// `Hint` 态是 7 整行——不是 8,第 8 条墨迹其实是 `Pick a version, then install` 那句
|
||||
/// hint,横向范围对不上版本号;r2 修回 7 整行)。所以 `Hint` **在任何档位都钉死**。
|
||||
pub(super) const fn of(tier: VersionRailTier, state: &PanelState<'_>) -> Self {
|
||||
pub(super) fn of(tier: VersionRailTier, state: &PanelState<'_>) -> Self {
|
||||
match (tier, state) {
|
||||
(VersionRailTier::Chips, PanelState::Options(_) | PanelState::Install(_)) => {
|
||||
Self::Shared
|
||||
}
|
||||
// M222 D30 r1 S1:**带加载器版本列表**的选项区在任何档位都太高。三栏档实测
|
||||
// (1180×760)面板从 204px 涨到 372px,版本列表从 6.0 行(278px)被压到 2.4 行
|
||||
// (110px)——列表底缘还切在第三行图标上。改成 Shared:两半各 ≈215px,
|
||||
// 列表回到 4.6 行,面板自己可滚([`Self::Shared`] 那条 `scrollable` 分支已存在)。
|
||||
(_, PanelState::Options(options)) if options.has_loader_versions() => Self::Shared,
|
||||
_ => Self::Pinned,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user