KennethCheng
11a122216b
feat(ui): Phase 2 C2 — Mock 消息模型 + Message list + Empty state
- ui/message-card.slint: export enum Priority + struct MessageItem +
MessageCard 组件(§7 优先级圆点 + 标题 + 应用·预览 + 相对时间 +
URL 指示)
- ui/message-list.slint: VerticalLayout + for 渲染 MessageCard
(避开 std-widgets 的 include_paths 配置需求)
- ui/empty-state.slint: §9 ✦ glyph(Path 自绘)+ "You're all caught up"
+ Test Notification 按钮
- ui/app.slint: messages.length 切换 list / empty-state;点击回
调到 MainWindow 顶层 callback
- src/models.rs: mock_messages() 生成 12 条覆盖 4 个 priority 的
假消息;format_relative() 输出 "2 min ago" / Yesterday 等
- src/lib.rs: ui.set_messages(mock_messages_model()) 装载;wire
on_test_notification_clicked / on_message_card_clicked
避坑:
- Slint 1.18 不允许覆盖 Rectangle 内建 border-color,命名用 card-border
- ModelRc::from 需要 Rc<VecModel<T>> 不是裸 VecModel
验证:cargo build / build --release 都 exit 0,0 warning
- debug 26.55 MB, subsystem = WINDOWS_CUI
- release 7.94 MB, subsystem = WINDOWS_GUI
2026-09-19 04:39:24 +08:00
..
2026-09-19 04:02:51 +08:00
2026-09-19 04:39:24 +08:00
2026-09-19 04:34:06 +08:00
2026-09-19 04:34:06 +08:00
2026-09-19 04:39:24 +08:00
2026-09-19 04:39:24 +08:00
2026-09-19 04:39:24 +08:00
2026-09-19 04:34:06 +08:00
2026-09-19 04:34:06 +08:00
2026-09-19 04:34:06 +08:00