feat: 添加依赖自动检测与安装、选项记忆、KDocs登录优化

- 新增依赖检测模块:启动时自动检测wkhtmltoimage和Playwright Chromium
- 新增依赖安装对话框:缺失时提示用户一键下载安装
- 修复选项记忆功能:浏览类型、自动截图、自动上传选项现在会保存
- 优化KDocs登录检测:未登录时自动切换到金山文档页面并显示二维码
- 简化日志输出:移除debug信息,保留用户友好的状态提示
- 新增账号变化信号:账号管理页面的修改会自动同步到浏览任务页面

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-19 01:28:06 +08:00
parent 83fef6dff2
commit 9743186a9e
11 changed files with 713 additions and 506 deletions

View File

@@ -136,6 +136,7 @@ class AccountWidget(QWidget):
"""Account management panel"""
log_signal = pyqtSignal(str)
accounts_changed = pyqtSignal() # 账号列表变化时发出通知
def __init__(self, parent=None):
super().__init__(parent)
@@ -315,6 +316,7 @@ class AccountWidget(QWidget):
save_config(config)
self._load_accounts()
self.log_signal.emit(f"账号 {account.username} 添加成功")
self.accounts_changed.emit() # 通知其他模块账号列表已更新
def _edit_account(self, row: int):
"""Edit account"""
@@ -326,6 +328,7 @@ class AccountWidget(QWidget):
save_config(config)
self._load_accounts()
self.log_signal.emit(f"账号 {account.username} 已更新")
self.accounts_changed.emit() # 通知其他模块账号列表已更新
def _delete_account(self, row: int):
"""Delete account"""
@@ -342,6 +345,7 @@ class AccountWidget(QWidget):
save_config(config)
self._load_accounts()
self.log_signal.emit(f"账号 {account.username} 已删除")
self.accounts_changed.emit() # 通知其他模块账号列表已更新
def _toggle_enabled(self, row: int, state: int):
"""Toggle account enabled state"""
@@ -349,6 +353,7 @@ class AccountWidget(QWidget):
if row < len(config.accounts):
config.accounts[row].enabled = state == Qt.CheckState.Checked.value
save_config(config)
self.accounts_changed.emit() # 通知其他模块账号启用状态已更新
def _test_login(self):
"""Test login for selected account"""