fix(app-iced,i18n): 实例名钉成面板页脚(S7)+ 中文占位符还原(S8)+ 注释实测值(S6)
D30 r2 视觉二审四条: 1. **S7(新回归)**:S1 的对半分让面板变矮之后实例名被挤出 1180×760 首屏。按 `install.rs` 早已登记的方案改成**可滚上半块 + 钉死页脚**:`install::panel_with(.., shared)` → `options::section(.., scroll)`;`rows::content` 对 `PanelState::Options` 不再整块套 scrollable(那层既把实例名卷进滚动区,也在窄窗产生第二条并列滚动条)。页脚不参与滚动, 可达性由结构保证,S2 随之关闭。 2. **S8**:`catalog/download.rs` 与金表同一行的中文命令占位符 `<Forge 版本 id>` 照抄不可执行, 还原成 `<forge id>`(两处一起改,金表顺序未动)。 3. **S6**:`rows.rs` 里「两半各 ≈215px / 列表 4.6 行」的估算换成实测(列表 245px = 5.29 行、 面板 237px、分隔线 y=498),并写明 S1b 仍欠一项与其正确落点。 **S1b/S9(列表底缘整行)本轮没修成**:试过 `responsive` 拿「分给列表的高度」再 floor, 实测无效(`Fill` 子项上拿到非确定高度,量测显示列表区最后墨迹行仍在分隔线前一行),已回退, 不留无效代码。正确落点是把列表可用高度从 `pages/download.rs` / `rails.rs`(都在 scope 外) 传进 `rows::content`。 测试:`-p unlucky-app-iced` 862 passed、`-p unlucky-i18n` 36 passed(金表改动后仍绿)。
This commit is contained in:
1 parent
cd7813f8eb
commit
f29ca609ec
5 files changed
+83
-30
No files matched your search
@@ -74,7 +74,7 @@ use super::super::frame;
|
||||
use super::super::layout::rails::{LIST_DATE_WIDTH, LIST_KIND_WIDTH, ROW_GAP, ROW_ICON_BUTTON};
|
||||
use super::super::layout::VersionRailTier;
|
||||
use super::super::Message;
|
||||
use super::install::{self, PanelState};
|
||||
use super::install::{self, panel_state, PanelState};
|
||||
use super::model::{Download, VersionRow};
|
||||
use super::states;
|
||||
|
||||
@@ -102,19 +102,28 @@ pub(super) fn content<'a>(
|
||||
|
||||
// 列表与尾部面板之间**总是**有一条分隔线(三态一致):M123 的取证图里「选好了版本」
|
||||
// 那一态原先没有它,版本行与选项区第一行(版本号 + 安装按钮)读起来像同一块内容。
|
||||
let tail: Element<'a, Message> = column![divider::full(ui), install::panel(ui, catalog, model)]
|
||||
.spacing(ui.space(Space::X3))
|
||||
.width(Length::Fill)
|
||||
.into();
|
||||
let shared = matches!(share, TailShare::Shared);
|
||||
let tail: Element<'a, Message> = column![
|
||||
divider::full(ui),
|
||||
install::panel_with(ui, catalog, model, shared)
|
||||
]
|
||||
.spacing(ui.space(Space::X3))
|
||||
.width(Length::Fill)
|
||||
.into();
|
||||
|
||||
// chips 档:面板收回自己的一半、内部可滚(它原先按内容高钉死,把列表压成 18px 的缝)。
|
||||
let tail: Element<'a, Message> = match share {
|
||||
TailShare::Pinned => tail,
|
||||
TailShare::Shared => scrollable(tail)
|
||||
// chips 档 / 带版本列表的选项区:面板收回自己的一半。
|
||||
//
|
||||
// `PanelState::Options` 走**面板内部**的滚动(上半块可滚 + 实例名钉页脚,见 `install::panel`),
|
||||
// 所以这里不再整块套一层 scrollable——那一层曾让窄窗出现两条并列滚动条,也因为把实例名
|
||||
// 卷进滚动区而让它掉到首屏外(D30 r2 S7)。其它面板(安装中/失败)内容短,保留外层滚动。
|
||||
let tail: Element<'a, Message> = match (share, panel_state(model)) {
|
||||
(TailShare::Shared, PanelState::Options(_)) => tail,
|
||||
(TailShare::Shared, _) => scrollable(tail)
|
||||
.id(iced::widget::Id::new(PANEL_SCROLL_ID))
|
||||
.height(Length::Fill)
|
||||
.style(frame::scroll_style(ui))
|
||||
.into(),
|
||||
(TailShare::Pinned, _) => tail,
|
||||
};
|
||||
|
||||
column![
|
||||
@@ -171,10 +180,14 @@ impl TailShare {
|
||||
(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` 分支已存在)。
|
||||
// M222 D30 r1 S1 / r2 S7:**带加载器版本列表**的选项区在任何档位都太高。
|
||||
// 三栏档(1180×760)实测:修前面板 204→372px,版本列表 6.0 行(278px)被压到
|
||||
// 2.4 行(110px,底缘切在第三行图标上);改成 Shared 之后版本列表 **245px = 5.29 行**、
|
||||
// 面板 237px(分隔线 y=498)。面板因此变矮,实例名会被挤出首屏 ⇒ 同一轮把它
|
||||
// **钉成面板页脚**(`install::panel_with` 的 `shared` 分支 + `options::section`)。
|
||||
// 仍欠一项:245px 不是行高整数倍,列表底缘仍切在第 6 行中间(S1b/S9)。
|
||||
// 修它要把「分给列表的高度」从 `pages/download.rs` 传进来做 floor 取整
|
||||
// (`responsive` 在 Fill 子项上拿不到确定高度,实测无效,已回退)。
|
||||
(_, PanelState::Options(options)) if options.has_loader_versions() => Self::Shared,
|
||||
_ => Self::Pinned,
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user