design.md
3.33 KB
Design Document: Standalone History Browsing Interface
Context
当前历史记录实现允许用户双击历史项目将其加载到图片生成界面,但这会干扰用户的当前工作状态。用户希望历史记录作为纯粹的浏览功能,直接在历史记录界面中查看完整信息。
Goals / Non-Goals
Goals:
- 提供独立的历史记录浏览功能
- 在历史记录界面直接显示prompt、参考图和生成图
- 支持prompt文本复制功能
- 保持与图片生成功能的完全隔离
- 提供直观的图片预览和详情展示
Non-Goals:
- 不再支持从历史记录加载到生成界面
- 不修改现有的图片生成工作流程
- 不增加复杂的编辑功能
Decisions
1. 界面重构方案
Decision: 重新设计历史记录标签页为详情浏览模式
- Why: 避免界面间的操作干扰,提供更清晰的用户体验
- Alternatives considered: 弹窗详情、侧边栏详情页
- Chosen approach: 在历史记录标签页内实现完整的详情显示
2. 信息展示布局
Decision: 采用上下布局:历史列表在上(显示生成图预览),详情展示在下
- Why: 类似文件管理器的熟悉交互模式,预览图让用户快速识别内容
- Alternatives considered: 左右分栏、全屏切换、纯列表模式
- Chosen approach: 固定比例的上下分割布局,列表项显示生成图缩略图
3. 交互方式
Decision: 单击选择历史项显示详情,双击或右键提供额外操作
- Why: 提供清晰的选择反馈和操作入口
- Alternatives considered: 仅单击、仅右键菜单
- Chosen approach: 简单的单击选择 + 右键菜单操作
Technical Architecture Details
新的UI组件结构
历史记录标签页
├── 工具栏 (刷新、清空、删除)
├── 分割器 (QSplitter)
│ ├── 上部: 历史记录列表 (QListWidget)
│ │ ├── 每个列表项显示:
│ │ │ ├── 生成图片缩略图 (120x120)
│ │ │ ├── 时间戳
│ │ │ └── Prompt前20个字符
│ │ └── 悬停显示完整信息
│ └── 下部: 详情展示区域 (QWidget)
│ ├── Prompt区域 (QTextEdit + 复制按钮)
│ ├── 参数信息 (宽高比、尺寸)
│ ├── 参考图片区域 (QScrollArea)
│ └── 生成图片大预览 (QLabel)
数据流设计
- 选择历史项: 用户点击列表项 → 加载详细数据 → 更新详情区域
- 复制Prompt: 点击复制按钮 → 复制到剪贴板 → 显示成功提示
- 删除操作: 右键菜单删除 → 确认对话框 → 更新列表和详情
Risks / Trade-offs
- [界面复杂度] → 通过清晰的布局和分组来管理
- [图片加载性能] → 实现延迟加载和缓存机制
- [用户体验] → 提供清晰的视觉反馈和操作提示
Implementation Plan
- Phase 1: 移除现有的加载到界面功能
- Phase 2: 重新设计历史记录标签页UI
- Phase 3: 实现详情展示功能
- Phase 4: 添加复制和操作功能
- Phase 5: 测试和优化
Open Questions
- 历史记录列表和详情区域的比例应该是多少?
- 是否需要添加历史记录的搜索功能?
- 如何处理大量历史记录时的性能问题?