更新日志 — v3.0.3¶
发布日期: 2026-02-08
详细更新内容请参见 CHANGELOG.md
[3.0.3] - 2026-02-08¶
新增¶
- LCSC 预览图功能
- 网络图片获取: 实现
fetchLcscPreviewImage方法,支持从 LCSC 网站获取元件预览图 - 重试机制: 添加网络请求重试机制,提高图片获取成功率
- Fallback 爬虫模式: 当 API 不可用时,使用爬虫模式获取元件预览图片
- 缩略图生成: 新增
ThumbnailGenerator工具类,自动生成 Base64 缩略图 - 数据模型扩展: 新增
ComponentListItemData类,包含缩略图、验证状态等 UI 相关信息 -
代码位置:
src/services/ComponentService.cpp,src/models/ComponentListItemData.h/cpp,src/ui/utils/ThumbnailGenerator.h/cpp -
组件列表功能增强
- ID 复制功能: 在
ComponentListItem中添加右键点击复制组件 ID 到剪贴板 - 复制提示: 显示复制成功的工具提示,提升用户体验
-
代码位置:
src/ui/qml/components/ComponentListItem.qml,src/ui/viewmodels/ComponentListViewModel.cpp -
响应式布局和窗口调整
- 自适应网格布局: 组件列表从固定 5 列改为自适应网格布局,动态计算列数
- 窗口边缘调整: 添加 8 个方向的拖拽调整手柄,支持窗口大小调整
- 鼠标交互优化: 优化组件列表项的鼠标交互区域层级结构
- 缩略图悬停预览: 改进缩略图悬停预览功能的显示逻辑和视觉效果
-
代码位置:
src/ui/qml/MainWindow.qml,src/ui/qml/components/ComponentListItem.qml -
预加载数据支持
- 预加载数据功能: 在
ExportService_Pipeline中添加setPreloadedData方法 - 优化数据流: 改进进度跟踪机制,使数据流更加高效
- 临时文件管理: 优化临时文件清理逻辑,确保符号文件正确处理
- 符号库合并修复: 修复符号库合并时的临时文件管理问题
- 代码位置:
src/services/ExportService_Pipeline.cpp/h
重大变更¶
- 组件列表模型重构
- 迁移至 QAbstractListModel: 将
ComponentListViewModel从QQmlListProperty迁移至QAbstractListModel - 性能提升: 提供更高效的 UI 更新机制
- API 变更: QML 中组件列表访问方式变更,不再使用
componentList属性,而是直接通过model绑定访问 - 新方法: 添加
getAllComponentIds方法优化导出流程 - 代码位置:
src/ui/viewmodels/ComponentListViewModel.cpp/h,src/ui/qml/MainWindow.qml
修复¶
- 导出服务统计缺失问题修复
- 完成状态统计修复: 在预加载数据使用场景下,添加状态到完成状态列表以供统计
- 关键修复: 解决了预加载数据场景下统计数据不准确的问题,确保所有导出状态都被正确统计
-
代码位置:
src/services/ExportService_Pipeline.cpp:316 -
MainWindow 代码结构修复
- 组件删除逻辑优化: 将组件删除逻辑从索引查找改为 ID 查找,简化删除操作流程
- 条件判断修复: 修复数据为空时的条件判断逻辑,避免潜在的空指针异常
- 过滤逻辑修正: 修正组件列表过滤的 ID 提取逻辑
-
代码位置:
src/ui/qml/MainWindow.qml -
ExportProgressViewModel 构造参数修复
- 依赖注入: 在
ExportProgressViewModel构造函数中添加componentListViewModel参数 - 正确初始化: 确保视图模型正确初始化依赖关系
- 代码位置:
main.cpp,src/ui/viewmodels/ExportProgressViewModel.cpp/h
重构¶
- 组件列表视图模型简化
- 枚举定义优化: 简化
ComponentListViewModel中的枚举定义格式 - 代码整洁性: 移除不必要的多行枚举定义格式,使代码更加紧凑和一致
-
代码位置:
src/ui/viewmodels/ComponentListViewModel.h:27 -
代码格式优化
- 日志格式统一: 整理
LanguageManager.cpp中的调试日志输出格式 - 可读性提升: 移除多余空行,统一调试信息的日志格式
- 代码位置:
src/core/LanguageManager.cpp