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)

数据流设计

  1. 选择历史项: 用户点击列表项 → 加载详细数据 → 更新详情区域
  2. 复制Prompt: 点击复制按钮 → 复制到剪贴板 → 显示成功提示
  3. 删除操作: 右键菜单删除 → 确认对话框 → 更新列表和详情

Risks / Trade-offs

  • [界面复杂度] → 通过清晰的布局和分组来管理
  • [图片加载性能] → 实现延迟加载和缓存机制
  • [用户体验] → 提供清晰的视觉反馈和操作提示

Implementation Plan

  1. Phase 1: 移除现有的加载到界面功能
  2. Phase 2: 重新设计历史记录标签页UI
  3. Phase 3: 实现详情展示功能
  4. Phase 4: 添加复制和操作功能
  5. Phase 5: 测试和优化

Open Questions

  • 历史记录列表和详情区域的比例应该是多少?
  • 是否需要添加历史记录的搜索功能?
  • 如何处理大量历史记录时的性能问题?