feat(qml): task #12 业务桥层 — 5 个 QObject 暴露给 QML
bridges/
auth.py AuthBridge login/logout + currentUser/loggedIn (PoC 模式接受任意非空)
imagegen.py ImageGenBridge submitTask + 信号转发 (TaskQueueManager → QML)
history.py HistoryBridge 暴露 HistoryListModel + refresh/getItem/deleteItem
taskqueue.py TaskQueueBridge 自带 _TaskListModel (QAbstractListModel + roleNames)
jewelry.py JewelryBridge 词库增删 + previewPrompt
_icons.py build_placeholder_icon (旧 ImageGeneratorWindow.create_placeholder_icon
是实例方法,桥层独立一份)
main_qml.py 改造:
- 顶部加载 config.json + 实例化 core 业务 (HistoryManager / JewelryLibraryManager /
TaskQueueManager) + 启 audit_logger(有 db_config 时)
- 5 个桥通过 setContextProperty 注入:appState / auth / imageGen / history /
taskQueue / jewelry
- imageGen.taskCompleted → history.addNew(timestamp) 串起新生成图自动入历史
- AppState 保留作 currentTab 等 UI 状态(task #13 后 loggedIn 字段删,QML 改用 auth.loggedIn)
冒烟测试:
- 5 桥全 import OK,依赖注入构造 OK
- PoC 模式 login('test','x') 通过 / login('','') 拒绝
- history.refresh() 加载 2 条历史成功
- jewelry.previewPrompt({...}) 正确组装中文 prompt
- QML PoC 启动,登录页 + 主窗口(QML_AUTO_LOGIN=1)渲染完整无视觉回归
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Showing
8 changed files
with
694 additions
and
29 deletions
bridges/__init__.py
0 → 100644
bridges/_icons.py
0 → 100644
bridges/auth.py
0 → 100644
bridges/history.py
0 → 100644
bridges/imagegen.py
0 → 100644
bridges/jewelry.py
0 → 100644
bridges/taskqueue.py
0 → 100644
-
Please register or sign in to post a comment