Unlucky Launcher v0.2.0
CI / runtime smoke (macos arm64, probe) (push) Skipped
CI / fmt (rustfmt --check) (push) Canceled after 0s
CI / clippy (ubuntu-latest) (push) Canceled after 0s
CI / clippy (windows-latest) (push) Canceled after 0s
CI / test (ubuntu-latest) (push) Canceled after 0s
CI / test (windows-latest) (push) Canceled after 0s
CI / build release (ubuntu-latest) (push) Canceled after 0s
CI / build release (windows-latest) (push) Canceled after 0s
CI / runtime smoke (ubuntu x64, xvfb) (push) Canceled after 0s
Guards / core 零 UI 守门 (push) Canceled after 0s
Guards / presenter 零 UI 守门 (push) Canceled after 0s
Guards / design 零第三方依赖守门 (push) Canceled after 0s
Guards / unsafe 落点守门(集合必须恰好一个文件) (push) Canceled after 0s
Guards / 文件行数 ≤400 守门 (push) Canceled after 0s
Guards / 依赖许可与来源(cargo-deny) (push) Canceled after 0s
CI / runtime smoke (macos arm64, probe) (push) Skipped
CI / fmt (rustfmt --check) (push) Canceled after 0s
CI / clippy (ubuntu-latest) (push) Canceled after 0s
CI / clippy (windows-latest) (push) Canceled after 0s
CI / test (ubuntu-latest) (push) Canceled after 0s
CI / test (windows-latest) (push) Canceled after 0s
CI / build release (ubuntu-latest) (push) Canceled after 0s
CI / build release (windows-latest) (push) Canceled after 0s
CI / runtime smoke (ubuntu x64, xvfb) (push) Canceled after 0s
Guards / core 零 UI 守门 (push) Canceled after 0s
Guards / presenter 零 UI 守门 (push) Canceled after 0s
Guards / design 零第三方依赖守门 (push) Canceled after 0s
Guards / unsafe 落点守门(集合必须恰好一个文件) (push) Canceled after 0s
Guards / 文件行数 ≤400 守门 (push) Canceled after 0s
Guards / 依赖许可与来源(cargo-deny) (push) Canceled after 0s
首个 iced + Material 3 Expressive 版本的源码快照。 完整历史与日常提交在 dev 分支;main 只放阶段性快照。
This commit is contained in:
commit
8a8e5ca0c0
1079 files changed
+208035
No files matched your search
@@ -0,0 +1,73 @@
|
||||
// 安装进度卡片(下载页底部 / 向导进度步共用):阶段 + 进度条 + 文件/字节/速度/剩余 + 取消。
|
||||
import { Theme } from "../theme/tokens.slint";
|
||||
import { Metrics } from "../theme/metrics.slint";
|
||||
import { UiInstallProgress, InstallStage } from "../models.slint";
|
||||
import { UiText, TextRole } from "../components/label.slint";
|
||||
import { ProgressBar } from "../components/progress-bar.slint";
|
||||
import { AppIcon, IconKind } from "../components/icons.slint";
|
||||
import { MetroButton, ButtonKind } from "../widgets/button.slint";
|
||||
|
||||
export component InstallPanel inherits Rectangle {
|
||||
in property <UiInstallProgress> data;
|
||||
callback cancel();
|
||||
|
||||
height: 96px;
|
||||
visible: root.data.visible;
|
||||
background: Theme.bg-surface;
|
||||
border-width: 1px;
|
||||
border-color: Theme.stroke;
|
||||
|
||||
VerticalLayout {
|
||||
padding: Metrics.gap-3;
|
||||
spacing: Metrics.gap-1;
|
||||
|
||||
HorizontalLayout {
|
||||
spacing: Metrics.gap-2;
|
||||
|
||||
AppIcon {
|
||||
icon-size: 16px;
|
||||
kind: root.data.failed ? IconKind.error
|
||||
: root.data.terminal ? IconKind.check
|
||||
: IconKind.download;
|
||||
tint: root.data.failed ? Theme.state-danger
|
||||
: root.data.terminal ? Theme.state-success
|
||||
: Theme.accent;
|
||||
}
|
||||
UiText {
|
||||
role: TextRole.bodyStrong;
|
||||
text: root.data.instance + " · " + root.data.loader;
|
||||
horizontal-stretch: 1;
|
||||
}
|
||||
UiText {
|
||||
role: TextRole.caption;
|
||||
text: root.data.stage_label;
|
||||
color: root.data.failed ? Theme.state-danger : Theme.fg-secondary;
|
||||
}
|
||||
if !root.data.terminal : MetroButton {
|
||||
kind: ButtonKind.subtle;
|
||||
text: "取消";
|
||||
button-height: 24px;
|
||||
clicked => { root.cancel(); }
|
||||
}
|
||||
}
|
||||
|
||||
ProgressBar {
|
||||
ratio: root.data.ratio;
|
||||
known: root.data.known;
|
||||
}
|
||||
|
||||
HorizontalLayout {
|
||||
spacing: Metrics.gap-3;
|
||||
UiText {
|
||||
role: TextRole.caption;
|
||||
text: root.data.message;
|
||||
horizontal-stretch: 1;
|
||||
overflow: elide;
|
||||
}
|
||||
UiText { role: TextRole.caption; text: root.data.files_label; }
|
||||
UiText { role: TextRole.caption; text: root.data.bytes_label; }
|
||||
UiText { role: TextRole.caption; text: root.data.speed; color: Theme.accent; }
|
||||
UiText { role: TextRole.caption; text: root.data.eta; }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user