T-583 数据层:泛化 prompts 模板 CRUD(cover 转薄封装)、加 title_templates 目录、title_prompt.txt 保留为工作文本(加法不换单文件)、拿现有默认播一条; 不碰 generate_batch。T-584 UI reorg:标题加模板控件行(label 下单独一行)、 封面控件压一行、插入类按钮下移输入框工具条、标题输入框增高。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4.6 KiB
4.6 KiB
id, title, phase, deps, status, created
| id | title | phase | deps | status | created | |
|---|---|---|---|---|---|---|
| T-584 | ②左侧提示词区 reorg:标题提示词加模板控件行 + 封面控件压一行 + 插入类按钮下移工具条 + 增高标题输入框 | 7 |
|
TODO | 2026-07-10 |
问题 / 背景
②标题提示词区现无模板管理(只有 label + 输入框 + 「保存标题提示词」+「插入旧标题」);封面提示词区已有「下拉框/新建/保存/模板操作(另存为/重命名/删除)」但铺了多行。T-583 已提供标题模板数据层(title_templates/ + 通用 CRUD + 默认模板播种)。本任务做左侧 UI 重排,让标题拥有与封面对等的模板管理,并腾出纵向空间给标题输入框。
定案排布(已评审):
- 模板控件放在 label 下方单独一行(不贴 label 同行——窄栏塞不下下拉+3按钮)。
- 插入类按钮(标题「插入旧标题」T-549、封面「插入标题」、「预览」)移到各自输入框下方的工具条,与"模板管理"分离。
- 封面模板控件压到一行,省出的纵向空间给标题输入框增高。
方案(改哪个文件、改成什么)
app/gui/tabs/generate.py — 左侧布局重排
标题提示词区(新结构,自上而下):
- label「标题提示词」
- 模板控件行(新增):
[标题模板下拉] [新建] [保存] [模板操作▾(另存为/重命名/删除)]——镜像封面那套,控件用title_template_*命名,调 T-583 通用 CRUD(传title_templates_dir)。 - 标题输入框
title_prompt_edit(增高,吃掉封面压行省出的空间)。 - 输入框下工具条:
[插入旧标题] [保存标题提示词](insert_old_title_button保留 T-549 行为;「保存标题提示词」= 存当前工作文本到title_prompt.txt,与"保存模板"区分)。
封面提示词区(压缩):
- label「封面提示词」
- 模板控件行(压到一行):
[封面模板下拉] [新建] [保存] [模板操作▾]。 - 封面输入框
cover_prompt_edit。 - 输入框下工具条:
[插入标题] [预览]。
标题模板控件行为(镜像封面 handler)
- 下拉:
refresh_title_templates/load_selected_title_template(选中→载入内容到title_prompt_edit,记current_title_template)。 - 新建 / 保存(存当前模板) / 模板操作(另存为/重命名/删除)——复用 T-583 通用 CRUD,逻辑镜像
*_cover_template现有 handler。 - 「保存标题提示词」(工作文本→
title_prompt.txt)与「保存(模板)」是两件事,二者都保留、语义在 tooltip 说清。
命名 / 一致性
- 新控件
objectName用titleTemplateCombo/newTitleTemplateButton/saveTitleTemplateButton/titleTemplateActionsButton+ 三个 action,供测试定位。 - 「模板操作」下拉/菜单结构与封面一致(另存为/重命名/删除)。
文档同步
docs/routes.md/②UI 文档/线框图:登记标题模板控件行、插入类按钮下移、封面压行。
验收要点
- 标题提示词区出现模板控件行(下拉/新建/保存/模板操作),能新建/切换/保存/另存为/重命名/删除标题模板(走 T-583 CRUD),切换模板载入内容到标题输入框。
- 「插入旧标题」移到标题输入框下方工具条、T-549 插入
{旧标题}行为不回归;封面「插入标题」「预览」移到封面输入框下方工具条、行为不回归。 - 封面模板控件压到一行;标题输入框可用高度较改动前增大(人工/布局断言二选一记录)。
- 「保存标题提示词」(工作文本)与「保存模板」并存、各自写
title_prompt.txt/ 模板文件,不混淆。 - 生成仍取编辑框当前文本(不回归);标题/封面模板互不干扰。
- 既有封面模板 UI 测试不回归。
- 验证命令(unittest,不引入 pytest;GUI offscreen):
py -3.10 -m unittest tests.test_guipython -m ruff check app tests main.pypy -3.10 -m compileall app main.pypy -3.10 -m unittest discover -s testsgit diff --check
边界(不改什么)
- 不改 T-583 数据层契约(CRUD/目录/默认播种)。
- 不改
generate_batch/生成读取路径/render_prompt/AI/cmhub。 - 不改封面模板既有 handler 逻辑本身(仅调整其控件所在布局行)。
- 不改标题/封面占位符语义、
title_prompt.txt工作文本语义。 - 不改右侧任务表、生成/停止/重置按钮区、③/①/CDP/DB。
执行记录
(做完在这里写:改了什么文件、跑了什么验证命令及结果、遇到的阻塞、关键决策。)