Files
cmshoppe/docs/tasks/T-584.md
T
chengmaandClaude Opus 4.8 5fa3b921bb docs(tasks): add T-583/T-584 title prompt template management
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>
2026-07-10 11:17:44 +08:00

71 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: T-584
title: ②左侧提示词区 reorg:标题提示词加模板控件行 + 封面控件压一行 + 插入类按钮下移工具条 + 增高标题输入框
phase: 7
deps: [T-583]
status: TODO
created: 2026-07-10
---
## 问题 / 背景
②标题提示词区现无模板管理(只有 label + 输入框 + 「保存标题提示词」+「插入旧标题」);封面提示词区已有「下拉框/新建/保存/模板操作(另存为/重命名/删除)」但铺了多行。T-583 已提供标题模板数据层(`title_templates/` + 通用 CRUD + 默认模板播种)。本任务做左侧 UI 重排,让标题拥有与封面对等的模板管理,并腾出纵向空间给标题输入框。
定案排布(已评审):
- 模板控件放在 **label 下方单独一行**(不贴 label 同行——窄栏塞不下下拉+3按钮)。
- **插入类按钮**(标题「插入旧标题」T-549、封面「插入标题」、「预览」)移到**各自输入框下方的工具条**,与"模板管理"分离。
- 封面模板控件压到一行,省出的纵向空间给标题输入框增高。
## 方案(改哪个文件、改成什么)
### `app/gui/tabs/generate.py` — 左侧布局重排
标题提示词区(新结构,自上而下):
1. label「标题提示词」
2. **模板控件行**(新增):`[标题模板下拉] [新建] [保存] [模板操作▾(另存为/重命名/删除)]`——镜像封面那套,控件用 `title_template_*` 命名,调 T-583 通用 CRUD(传 `title_templates_dir`)。
3. 标题输入框 `title_prompt_edit`(**增高**,吃掉封面压行省出的空间)。
4. **输入框下工具条**:`[插入旧标题] [保存标题提示词]`(`insert_old_title_button` 保留 T-549 行为;「保存标题提示词」= 存当前工作文本到 `title_prompt.txt`,与"保存模板"区分)。
封面提示词区(压缩):
1. label「封面提示词」
2. **模板控件行**(压到一行):`[封面模板下拉] [新建] [保存] [模板操作▾]`。
3. 封面输入框 `cover_prompt_edit`。
4. **输入框下工具条**:`[插入标题] [预览]`。
### 标题模板控件行为(镜像封面 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_gui`
- `python -m ruff check app tests main.py`
- `py -3.10 -m compileall app main.py`
- `py -3.10 -m unittest discover -s tests`
- `git diff --check`
## 边界(不改什么)
- 不改 T-583 数据层契约(CRUD/目录/默认播种)。
- 不改 `generate_batch`/生成读取路径/`render_prompt`/AI/cmhub。
- 不改封面模板既有 handler 逻辑本身(仅调整其控件所在布局行)。
- 不改标题/封面占位符语义、`title_prompt.txt` 工作文本语义。
- 不改右侧任务表、生成/停止/重置按钮区、③/①/CDP/DB。
## 执行记录
(做完在这里写:改了什么文件、跑了什么验证命令及结果、遇到的阻塞、关键决策。)