From 841c17152a55081acd3a01b92cf1bcb31672158d Mon Sep 17 00:00:00 2001 From: AskaEth Date: Tue, 10 Nov 2026 14:47:59 +0800 Subject: [PATCH] =?UTF-8?q?test(app-iced):=20=E4=B8=8B=E8=BD=BD=E9=A1=B5?= =?UTF-8?q?=E5=8A=A0=20options-liteloader=20=E5=87=BA=E5=9B=BE=E5=8F=96?= =?UTF-8?q?=E6=A0=B7=E7=82=B9=EF=BC=88D30=20=E8=A7=86=E8=A7=89=E5=8F=96?= =?UTF-8?q?=E8=AF=81=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit M222 的视觉门禁一直缺图:本机没有看图通道,但**出图通道可用**(`--software-renderer` 走 tiny-skia CPU 后端,无桌面也能落盘)。下载页早有专属夹具 `ULL_DL_DEMO`(`demo.rs`,产品路径 不读),M105 就用它出过安装选项区三态,所以这里加第四个取样点,而不是再造一个平行 env: ULL_DL_DEMO=options-liteloader pages_demo --screen=download --width=1180 --height=760 \ --screenshot=out.png --screenshot-theme=light --software-renderer 取样点是「选中 1.12.2 + LiteLoader」(官方版本表只到 1.12.2),走**产品那条真转换** `Download::from_snapshot`:chip 行、中性说明「只叠原版」、确认键状态都是产品行为。 版本列表**只在本次状态里**补一条 1.12.2——不动 `demo_versions()`,因为那是别处基线图的行集 (`tests/view.rs` 钉着 8 行)。 四张图与真假表落在 `DevDocs/artifacts/m222/`(git 忽略区,不入库):浅色 / 深色 / 720 窄窗 / 原版对照,README 里写明哪张证明什么、哪些是夹具、哪些是产品真转换。图的内容判定未做—— 出图者无图像能力,交给视觉 reviewer。 --- crates/app-iced/src/pages/download/demo.rs | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/crates/app-iced/src/pages/download/demo.rs b/crates/app-iced/src/pages/download/demo.rs index 110eb95..79e827f 100644 --- a/crates/app-iced/src/pages/download/demo.rs +++ b/crates/app-iced/src/pages/download/demo.rs @@ -21,6 +21,7 @@ //! 取值:`ready`(缺省)/ `loading` / `empty` / `selected` / `category-release` / `installing` / //! `installing-late` / `installing-empty` / `failed` / `done` / `done-next` / //! **`options` / `options-fabric` / `options-incompat`**(M105 的安装选项区三态)/ +//! **`options-liteloader`**(M222:LiteLoader 已可装,取样点用它的最高原版 1.12.2)/ //! **`category-ancient` / `search` / `search-major` / `search-empty` / `search-elsewhere`** //! (M107 的两级侧栏与搜索取样点)。 //! @@ -81,6 +82,8 @@ pub fn demo(catalog: Catalog) -> Download { ), // NeoForge 最早只到 1.20.1,远古版(列表里的 `rd-132211`)根本没有构建 ⇒ 选中即报原因 Some("options-incompat") => options(catalog, "rd-132211", Loader::NeoForge, None), + // M222 的取样点:选中 1.12.2 + LiteLoader(外加「这里只叠原版」那条中性说明) + Some("options-liteloader") => options_liteloader(catalog), Some("selected") => Download { selected: Some("1.21.9".to_string()), ..ready(catalog) @@ -169,6 +172,37 @@ fn options(catalog: Catalog, version: &str, loader: Loader, cached: Option Download { + const MC: &str = "1.12.2"; + let mut versions = demo_versions(); + versions.push(VersionSummary { + id: MC.to_string(), + kind: VersionKind::Release, + released: "2017-09-18".to_string(), + installed: false, + }); + let mut state = AppState::new(); + state.apply(AppEvent::Core(CoreEvent::VersionListChanged(versions))); + // 真版本表里 LiteLoader 对 1.12.2 只有这一条(快照分支),照实写。 + state.apply(AppEvent::Core(CoreEvent::LoaderVersions { + kind: Loader::LiteLoader.kind(), + mc_version: MC.to_string(), + result: Ok(vec!["1.12.2-SNAPSHOT".to_string()]), + })); + let draft = InstallDraft { + selected: Some(MC.to_string()), + loader: Loader::LiteLoader, + ..InstallDraft::default() + }; + Download::from_snapshot(&state, Category::All, &draft, catalog) +} + /// 22 个主版本桶(`1.21 … 1.0`)的清单:chips 档的横向滚动取证用。 fn many(catalog: Catalog) -> Download { let versions = (0..=21)