github-actions[bot]
|
e4d838a9d0
|
chore(release): v1.4.0 [auto release commit]
|
2026-07-14 02:19:40 +00:00 |
|
KenanZhu
|
e40e7767c7
|
style(settings): 移除导入主题后冗余的状态刷新调用
|
2026-07-10 11:41:43 +08:00 |
|
KenanZhu
|
1b6c170d6c
|
style(ReserveFlow): 提取容器类的UI设置到setupUi方法
|
2026-07-10 10:07:38 +08:00 |
|
KenanZhu
|
30a7a8e996
|
fix(settings): 修复测试公告栏连接时 QThread 未等待导致闪退
|
2026-07-09 09:29:45 +08:00 |
|
KenanZhu
|
d59ecc3090
|
feat(update): 新增检查更新功能与菜单栏公告入口
|
2026-07-09 09:06:58 +08:00 |
|
KenanZhu
|
ed8dec70a6
|
fix: 恢复 deleteLater() 替换错误的 delete() 调用
|
2026-06-26 11:16:09 +08:00 |
|
KenanZhu
|
dfa9ae1a0c
|
fix(config): ConfigManager.get() 返回深拷贝,消除跨模块字典原地修改
|
2026-06-26 11:16:09 +08:00 |
|
KenanZhu
|
06740776a9
|
fix(timer,bulletin): 修复定时任务与公告栏 5 项交叉审查问题
|
2026-06-26 11:16:08 +08:00 |
|
KenanZhu
|
c8f9ae752f
|
fix(bulletin): 修复托盘消息点击冲突,增加公告入口,移除托盘公告选项
|
2026-06-26 10:18:15 +08:00 |
|
KenanZhu
|
89c1e33257
|
chore: 更新官网手册链接
|
2026-06-26 10:00:02 +08:00 |
|
KenanZhu
|
862f86827a
|
refactor(timer): ALMainWindow 集成 ALTimerTaskPoller 消除内联轮询
|
2026-06-26 09:58:39 +08:00 |
|
KenanZhu
|
ed98623cda
|
feat(timer): 新增 ALTimerTaskPoller 定时任务轮询器
|
2026-06-26 09:56:24 +08:00 |
|
KenanZhu
|
ab51c72a11
|
style: 重命名 ALMainWorkers 为 ALMainWorker 遵循单数命名
|
2026-06-26 09:18:48 +08:00 |
|
KenanZhu
|
2fe4584129
|
refactor(bulletin): 提取 ALBulletinFetchWorker 到独立文件
|
2026-06-26 09:16:45 +08:00 |
|
KenanZhu
|
92c5fa0dfb
|
style: 统一代码格式与导入优化
|
2026-06-26 09:16:23 +08:00 |
|
KenanZhu
|
05ad9ba0b3
|
chore: 合并 feature/bulletin-system 到 develop
|
2026-06-25 13:26:12 +08:00 |
|
KenanZhu
|
0069d5274b
|
style(gui): 统一非Qt控件变量为蛇形命名
|
2026-06-25 13:17:36 +08:00 |
|
KenanZhu
|
6a9c662287
|
fix(bulletin): 修复状态标签圆圈不可见和定时器悬空引用问题
|
2026-06-25 11:32:58 +08:00 |
|
KenanZhu
|
d7fff16991
|
fix(driver): 驱动下载完成后更新下拉条目安装状态后缀
|
2026-06-25 10:49:31 +08:00 |
|
KenanZhu
|
133433f2d8
|
refactor(driver): WebDriver 子系统命名规范化与代码整理
|
2026-06-25 10:19:32 +08:00 |
|
KenanZhu
|
6f32923865
|
fix(bulletin): 修复公告栏系统多项逻辑缺陷与线程安全隐患
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-24 12:17:26 +08:00 |
|
KenanZhu
|
a716e5b945
|
feat(bulletin): 公告栏系统完整实现
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-24 12:15:28 +08:00 |
|
Kenan Zhu
|
308a1dfcf3
|
Merge branch 'main' into feature/global-settings
|
2026-06-21 09:31:34 +08:00 |
|
KenanZhu
|
8f8e3e4ba7
|
refactor(gui): 自定义主题控件及函数重命名,统一 CustomTheme 前缀
|
2026-06-19 10:22:36 +08:00 |
|
KenanZhu
|
88a74a7a47
|
refactor(gui): 提取窗口居中逻辑至 CenterOnParentMixin,消除5处重复 showEvent
|
2026-06-19 10:20:35 +08:00 |
|
KenanZhu
|
5552af1345
|
refactor(gui): 消除确认按钮重复逻辑,重置按钮不再提前应用主题
|
2026-06-19 09:36:18 +08:00 |
|
KenanZhu
|
f9175371dc
|
feat(gui): +/- 按钮文本替换为 QtAwesome 图标,fa5s 统一升级为 fa6s
- ALSettingsWidget: BrowseQssButton/RemoveThemeButton 的 + / - 文本改为 fa6s.plus/fa6s.minus 图标
- ALAutoScriptEditDialog: ZoomInBtn/ZoomOutBtn 的全角 +/- 改为 fa6s.plus/fa6s.minus 图标
- 其余图标同步从 fa5s 升级至 fa6s (Font Awesome 6)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-17 08:15:03 +08:00 |
|
KenanZhu
|
57f1cfb3f2
|
fix(theme): 修复死锁、冗余读取、空作者字符串等交叉审查问题
- ThemeManager 拆分 _removeThemeFile 无锁版本, 消除 importTheme 持锁
时调用 removeTheme 导致的死锁
- validateTheme 增加 check_qss 参数, listThemes 跳过 QSS 读取
- validateTheme 拒绝空/空白作者字符串, 避免 info.json 与文件名不一致
- 统一默认作者为 "未知作者"
- ALSettingsWidget.ui 增加删除按钮 [-], 浏览按钮改为 [+]
- ALSettingsWidget 实现 onRemoveThemeButtonClicked 删除逻辑
|
2026-06-16 19:37:09 +08:00 |
|
KenanZhu
|
007b4dc2ef
|
fix(theme): 修复同名主题无法区分作者及导入链路边界问题
- 新增 ThemeUtils.validateTheme 和 readThemeQss 集中校验与读取逻辑
- ThemeManager.importTheme 通过 _resolveDestPath 处理同名主题:
不同作者自动命名为 {主题名}_{作者名}.altheme, 首次导入保持原名
- ThemeManager.listThemes 返回 file 字段以便 UI 层定位文件
- ALSettingsWidget 全线改用 file 标识符, 组合框按作者消歧义显示
- 移除 applyTheme 中的临时目录解压, 改用 readThemeQss 直接读取
|
2026-06-16 18:37:47 +08:00 |
|
KenanZhu
|
f6ef9af39d
|
fix(ci): 修复 macOS 构建流程 6 项缺陷
1. requirements.txt 从 UTF-16 LE 转码为 UTF-8,修复 macOS pip install 解析失败
2. 新增 AutoLibrary_Logo.icns 图标文件,替换 macOS BUNDLE 中不兼容的 .ico 格式
3. PyInstaller 调用改为 python -m PyInstaller,确保 PATH 无关健壮性
4. ddddocr ONNX 模型路径增加多级 fallback 搜索,提升版本兼容性
5. info_plist 移除过时的 CFBundlePackageType,添加 NSHumanReadableCopyright
6. 为 macOS 专属的 sed -i '' 语法添加注释说明
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-10 09:05:01 +08:00 |
|
KenanZhu
|
67f297b434
|
revert(ALConfigWidget.ui): 撤回上次提交中的 ui 文件的启动默认页面
|
2026-06-07 12:53:02 +08:00 |
|
KenanZhu
|
86f0761eed
|
refactor(theme): 优化 LightLake 与 BlueForest 主题显示样式
|
2026-06-07 12:50:32 +08:00 |
|
KenanZhu
|
79e5b43498
|
fix(theme): 修复主题管理系统逻辑缺陷
- removeTheme() 删除当前活动主题后从 ConfigManager 读取已保存的主题偏好作为回退方案,不再硬编码 'system'
- saveAndApply() 在调用 _applyCustomTheme 前先 setActiveStyle(style),确保主题应用时使用最新选择的内置样式
- _applyCustomTheme() 返回 bool 表示成败,失败时调用方清除配置中的 custom_theme 避免下次启动循环失败
- importTheme() 增加 self.__lock 保护,消除 TOCTOU 竞态条件
- ThemeManager 新增 CfgKey 导入以支持 removeTheme 读取配置
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-05-31 18:58:07 +08:00 |
|
KenanZhu
|
b56d2c203e
|
fix(theme): 修复 QSS 主题样式缺陷
- 新增 QSpinBox/QDateEdit/QTimeEdit 的 ::up-button/::down-button/::up-arrow/::down-arrow 子控件样式,修复 spin button 箭头在 QSS 部分覆盖后退化渲染的问题
- 新增 QTreeWidget::indicator / QListWidget::indicator / QTableWidget::indicator 全状态样式,修复树控件中 CheckState 复选框因缺失 ::indicator 子控件而无法区分勾选状态的视觉 bug
- 指示器勾选态颜色与主题色保持一致(BlueForest: #2dd4bf, LightLake: #0ea58a)
- 同步深浅主题差异:移除 :hover:!selected 规则、统一 HeaderView padding、spin button 宽度及属性顺序
- up-arrow 注释 image:none 以还原原生箭头渲染
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-05-31 18:57:56 +08:00 |
|
KenanZhu
|
44dbde3355
|
fix(theme): 主题系统交叉审查缺陷修复
启动恢复:
- _initializeAppearance 自定义主题加载失败时调用 clearTheme 回退配色方案
列表校验:
- listThemes 同时校验 info.json 和 theme.qss 完整性
- 损坏的主题文件记录 LogManager 警告并跳过
- 按 (名称, 作者) 去重,同一作者同名主题仅保留一个
导入保护:
- importTheme 新增 (名称, 作者) 冲突检查
- applyTheme 缺少 theme.qss 时抛出明确 ValueError
状态一致性:
- saveAndApply 在 syncRadioFromNeedTheme 后重新采集 THEME 再保存
- __original_theme / __original_custom_theme 随每次 Apply 同步更新
- Reset 按钮恢复组合框到原始位置并刷新状态标签
代码质量:
- 提取 _colorSchemeFor 静态方法消除 applyTheme/clearTheme 中的重复映射
- 移除未使用的 _applyTheme 死代码
- _active_style_name 默认值从 '' 改为 'Fusion'
- 日志调用统一使用 LogManager
- _applyCustomTheme 异常时通过 LogManager 记录详细错误
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-05-31 00:46:05 +08:00 |
|
KenanZhu
|
62f8ec3d91
|
refactor(theme): 将重复的主题逻辑下沉至 ThemeManager
ThemeManager 新增:
- clearTheme(theme) — 清除 QSS 并应用指定色调
- applyThemeOrClear(name, fallback) — 应用或回退的封装
- _applyColorScheme(theme) — Qt ColorScheme 设置的统一入口
- themeToReadable(need_theme) — 静态工具方法
ALSettingsWidget 移除:
- _clearCustomTheme → 改用 themeInstance().clearTheme()
- _applyCustomTheme → 改用 themeInstance().applyThemeOrClear()
- _themeToReadable → 改用 ThemeManager.themeToReadable()
ALSettingsWidget 仅保留 _applyTheme(含 setStyle 逻辑,供 AppInitializer 使用)
|
2026-05-30 22:51:05 +08:00 |
|
KenanZhu
|
2d77cbec79
|
fix(gui): 修复保存主题时色调模式与主题 need_theme 不一致的问题
- 将 THEME 配置写入移至 syncRadioFromNeedTheme 之后
- 确保保存的色调模式值与主题实际兼容值一致,避免重启后错配
|
2026-05-30 22:30:31 +08:00 |
|
KenanZhu
|
10d731518a
|
fix(gui): ThemeInfoLabel 添加细边框
- 使用 palette(mid) 自适应当前主题色调
|
2026-05-30 22:20:29 +08:00 |
|
KenanZhu
|
9fdb6f7652
|
fix(ui): 修复 .ui XML 标签嵌套错误
- AppearancePageSpacer 从 CustomQssGroupBoxLayout 内移出,恢复为 AppearancePageLayout 的直接子项
- 补全缺失的 AppearancePageLayout 与 QScrollArea 闭合标签
- 修复 alignment 属性的 <set> 标签未正确闭合
|
2026-05-30 22:19:04 +08:00 |
|
KenanZhu
|
ef903ee817
|
fix(gui): ThemeInfoLabel 作者与简介缩小字号
- 用 <span style='font-size:smaller;'> 包裹作者和简介行
- 主题名称保持原有字号
|
2026-05-30 22:07:48 +08:00 |
|
KenanZhu
|
d6e8eef8c8
|
fix(gui): 恢复固定高度 420,滚动区域内添加弹性 Spacer 维持控件间距
|
2026-05-30 22:05:21 +08:00 |
|
KenanZhu
|
e893752c25
|
feat(gui): 为右侧配置面板添加滚动区域,放宽宽度限制
- AppearancePageLayout 包裹在 QScrollArea 内,内容溢出时可滚动
- 移除垂直 Spacer(滚动区域内不需要)
- 最小宽度 400→480,最大宽度 500→580,最大高度 420→不限
- .ui 与 Ui_ALSettingsWidget.py 同步更新
|
2026-05-30 22:02:43 +08:00 |
|
KenanZhu
|
1cfd7382be
|
fix(gui): 修复 ThemeInfoLabel 富文本换行与布局
- 设置 textFormat=RichText,\n 替换为 <br> 实现正确换行
- .ui 添加 minimumHeight=60、alignment=AlignTop 防止多行文本被裁剪
|
2026-05-30 21:58:40 +08:00 |
|
KenanZhu
|
1d9e41ab86
|
fix(gui): 重置按钮触发默认主题切换
- 重置按钮始终切到"默认"(index 0),清除自定义 QSS
- 调用 _clearCustomTheme 实际清除样式并应用原始色调模式
|
2026-05-30 21:56:19 +08:00 |
|
KenanZhu
|
645f07b4d2
|
refactor(gui): currentTextChanged → currentIndexChanged,ResetQssButton → ResetThemeButton
- ThemeComboBox 改用 currentIndexChanged(int) 信号
- ResetQssButton 重命名为 ResetThemeButton(.ui/.py 同步)
- 重置按钮行为改为恢复至原始主题并立即应用(saveAndApply)
|
2026-05-30 21:42:18 +08:00 |
|
KenanZhu
|
732f104c5c
|
refactor(gui): 重命名 _applyThemeByName → _applyCustomTheme,_clearQss → _clearCustomTheme
- _clearCustomTheme(theme) 清除 QSS 后切换到指定默认主题
- _applyCustomTheme(name, fallback_theme) 应用自定义主题,失败时回退到 fallback_theme
- saveAndApply 调用处传入当前 radio 主题作为 fallback
|
2026-05-30 21:37:15 +08:00 |
|
KenanZhu
|
a2bc1881bc
|
feat(gui): 新增主题信息标签,移除 custom_qss 兼容,优化重置按钮
- .ui 新增 ThemeInfoLabel 用于展示主题作者和简介
- ALSettingsWidget 新增 _updateThemeInfo 方法,ComboBox 切换时更新信息
- 移除 _loadQss/_applyQss 模块函数及所有 CUSTOM_QSS 引用
- AppInitializer 移除 _applyQss 导入和回退逻辑
- ConfigProvider/ConfigManager 移除 custom_qss 键
- 纯 QSS 导入通过 ThemeManager 打包为 .altheme 统一管理
|
2026-05-30 21:33:59 +08:00 |
|
KenanZhu
|
c1004ed2bc
|
refactor(gui): 主题切换改为显式确认,移除 ComboBox 即时响应
- 移除 ThemeComboBox.currentTextChanged 信号连接
- 主题仅通过"应用"/"确认"按钮显式应用
- 导入主题不再自动应用,仅选中并更新列表
- 取消时恢复原始主题与原 ComboBox 选中状态
- collectSettings 将"默认"统一转为空字符串
- saveAndApply 新增 _syncRadioFromNeedTheme 同步色调单选
|
2026-05-30 21:23:13 +08:00 |
|
KenanZhu
|
38489191f5
|
refactor(gui): 将主题控件样式修改迁移至 .ui 文件
- ThemeComboBox 移入 ALEttingsWidget.ui,由 setupUi 创建
- QssPathEdit/ApplyQssButton 的隐藏改为 .ui 的 visible=false
- BrowseQssButton/ResetQssButton/CustomQssHintLabel 文本直接在 .ui 中定义
- ALSettingsWidget.modifyUi 移除冗余的程序化 UI 修改
- 移除 ThemeStatusLabel 别名,直接使用 QssStatusLabel
|
2026-05-30 21:11:01 +08:00 |
|
KenanZhu
|
35253dadbb
|
feat(theme): 引入 .altheme 主题文件格式与主题管理系统
- 新增 .altheme 文件格式(zip 压缩包包含 info.json 与 theme.qss)
- 新增 utils/ThemeUtils.py:主题文件打包/解包/读取工具函数
- 新增 managers/theme/ThemeManager:主题目录管理器,支持导入/列举/删除/应用
- 新增 LightLake 浅色主题 QSS 文件
- 新增 CfgKey.GLOBAL.APPEARANCE.CUSTOM_THEME 配置键
- 配置模板新增 custom_theme 字段
- ALSettingsWidget 接入 ThemeManager,替换裸 QSS 路径模式
- AppInitializer 启动时恢复自定义主题状态
- Zip Slip 防护与线程安全保护
|
2026-05-30 21:01:18 +08:00 |
|