2e9bf50f by 柴进

feat(qml): task #15 款式设计 tab 补齐缺失按钮

回顾旧 StyleDesignerTab,task #15a 漏了一批按钮,现在补全:

顶部工具行(左侧卡片):
  - :game_die: 随机:跳过 lockedFields,每个非锁定字段随机取一个 option
  - :arrows_counterclockwise: 恢复默认词库:调 jewelry.resetAll()
  - 重置字段:清空 formData

字段行(每个 ComboBox 后跟 3 个 36px 按钮):
  - :heavy_plus_sign: 添加词条:弹 Dialog 输入新值 → jewelry.addItem(category, value)
  - :wastebasket:️ 删除当前词条:删 ComboBox 当前选中项
  - :unlock: / :lock: 字段锁:locked 字段 ComboBox disabled,标签变 textTertiary,:game_die: 跳过

操作行加 :floppy_disk: 下载图片(复用 ImageGenTab 的 SaveFileDialog 逻辑 + imageGen.saveFile)

ComboBox 宽度修复:
  Layout.preferredWidth: 240 + Layout.maximumWidth: 240 + Layout.fillWidth: true
  锁住宽度,避免随机后内容长度(如"小爪层戒臂(如莲花夹层设计)")撑大 RowLayout
  造成视觉跳动。displayText 由 ThemedComboBox.contentItem 的 elide 处理。

视觉验证:QML_DEBUG_TAB=1 进入款式设计 tab,三排顶部按钮 + 8 行字段
(每行 ComboBox + :heavy_plus_sign: + :wastebasket:️ + :unlock:)+ 操作行(生成 + 下载)全就位,UI 无回归。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent eb469aab