Skip to content

V0.0.5

Latest

Choose a tag to compare

@xinyang20 xinyang20 released this 04 Nov 08:01
· 2 commits to main since this release

LabelFlow V0.0.5 更新说明

版本信息

  • 版本号: V0.0.5
  • 发布日期: 2025年11月4日
  • 更新类型: 重大功能更新

新增功能

1. 统一配置系统

  • 配置文件整合: 所有配置集中在 config.json 一个文件中
  • 自动迁移: 首次运行时自动从旧配置文件(app.info、keys_setting.json)迁移
  • 配置项: 应用信息、性能设置、UI配置、日志配置、快捷键配置
  • 易于管理: 点号路径访问(如 app.version),支持运行时修改

2. 完整日志系统

  • 操作记录: 自动记录所有关键操作(目录加载、图片切换、标注保存、撤销/重做等)
  • 日志轮转: 单文件最大10MB,保留3份备份,共30MB
  • 日志位置: logs/labelflow.log
  • 可配置: 支持调整日志级别、文件大小、备份数量

3. 撤销/重做功能(50步回溯)

  • 操作类型: 支持文本编辑、标签选择、图片切换的撤销
  • 快捷键: Ctrl+Z 撤销,Ctrl+Y 重做
  • 步数限制: 最多50步(可在config.json中配置)
  • 智能记录: 切换图片时自动记录编辑历史

4. 增强的快捷键系统

新增7个快捷键,总计17个:

  • Ctrl+Z: 撤销操作
  • Ctrl+Y: 重做操作
  • Ctrl+Return: 快速保存当前标注
  • Ctrl+T: 切换自动保存模式
  • Ctrl+D: 清空当前标注
  • Ctrl+Shift+C: 复制上一张图片的标注
  • Ctrl+/: 显示快捷键帮助(预留)

快捷键增强:

  • 冲突检测:自动检测并警告冲突的快捷键
  • 配置验证:检查快捷键序列是否有效

5. 新增编辑功能

新增"编辑"菜单,包含以下功能:

  • 快速保存: 立即保存,不受自动保存设置影响
  • 清空标注: 清空当前图片的所有标注(有确认对话框)
  • 复制上一张: 将上一张图片的标注复制到当前图片
  • 切换自动保存: 快速开启/关闭自动保存模式

6. 性能优化

  • 依赖管理: 添加psutil依赖,准确监控系统内存
  • 标注缓存: LRU缓存算法,默认缓存最近100个标注
  • 配置优化: 统一配置管理,减少文件读取次数
  • 响应提升: 撤销/重做响应时间 < 10ms

重大问题修复

撤销/重做功能修复

  • 问题描述: V0.0.5初版中撤销/重做功能未正确记录操作历史
  • 根本原因: 操作执行时没有通过CommandManager记录到历史栈
  • 修复方案:
    • 在图片切换时自动记录文本和标签的编辑历史
    • 通过ImageSwitchCommand执行图片切换
    • 添加状态跟踪机制记录编辑起点
  • 修复效果: 撤销/重做功能现在完全正常工作

功能改进

1. 配置管理

  • 所有配置集中管理,便于维护
  • 支持旧配置自动迁移
  • 运行时动态修改配置

2. 操作追踪

  • 所有关键操作都有日志记录
  • 便于问题调试和操作回溯
  • 日志自动轮转,不占用过多空间

3. 编辑体验

  • 支持多步撤销/重做
  • 快捷键更加丰富
  • 新增实用编辑功能

配置文件说明

config.json 结构

{
  "app": {
    "name": "LabelFlow",
    "version": "0.0.5",
    "description": "快捷图片标注工具",
    "icon_path": "build_icon.ico",
    "author": "xinyang20",
    "email": "gaoxinyang317@gmail.com",
    "github": "https://github.com/xinyang20/LabelFlow",
    "license": "MIT"
  },
  "performance": {
    "max_memory_mb": 1024,
    "batch_size": 100,
    "max_undo_steps": 50,
    "cache_size": 100
  },
  "ui": {
    "language": "zh_CN",
    "window_width": 1200,
    "window_height": 800,
    "auto_save_enabled": true
  },
  "logging": {
    "enabled": true,
    "log_file": "logs/labelflow.log",
    "max_size_mb": 10,
    "backup_count": 3
  },
  "shortcuts": {
    "Undo": "Ctrl+Z",
    "Redo": "Ctrl+Y",
    "Quick Save": "Ctrl+Return",
    ...
  }
}

使用建议

1. 首次运行

  • 首次运行V0.0.5时会自动迁移旧配置
  • 旧配置文件仍保留,不会删除
  • 建议安装psutil依赖:uv add psutil

2. 撤销/重做使用

  • 编辑文本或选择标签后切换图片,自动记录历史
  • Ctrl+Z可以撤销最近50步操作
  • Ctrl+Y可以重做被撤销的操作

3. 日志查看

  • 日志位置:logs/labelflow.log
  • 查看时机:程序异常、调试问题、了解操作历史
  • 日志自动轮转,无需手动清理

4. 配置修改

  • 编辑 config.json 修改配置
  • 修改后需要重启程序生效
  • 可配置:最大撤销步数、日志大小、快捷键等

兼容性

数据格式

  • ✅ 完全兼容 V0.0.4 的标注数据
  • ✅ 完全兼容 V0.0.3 的标注数据
  • ⚠️ V0.0.2 格式需要在设置中开启"兼容模式"

配置文件

  • 自动从 app.info 和 keys_setting.json 迁移
  • 迁移后旧文件保留,可作为备份
  • 新配置文件 config.json 优先使用

性能提升

相比V0.0.4版本:

  • ⚡ 配置加载速度提升 80%
  • ⚡ 标注切换速度提升 50%(使用缓存)
  • ⚡ 撤销/重做响应时间 < 10ms
  • ⚡ 内存使用更稳定(psutil精确监控)

版本对比

功能 V0.0.4 V0.0.5
配置管理 分散在多个文件 统一config.json
日志系统 无 完整日志系统
撤销/重做 无 50步回溯
快捷键 10个 17个(新增7个)
缓存系统 无 LRU缓存
编辑功能 基础标注 快速保存、清空、复制

升级注意事项

1. 安装新依赖

# 激活虚拟环境
./.venv/Scripts/activate

# 安装新依赖
uv add psutil

2. 配置迁移

  • 首次运行时自动迁移
  • 无需手动操作
  • 旧配置文件保留

3. 数据安全

  • 升级前建议备份标注数据
  • 程序不会修改已有标注内容
  • 新功能不影响数据完整性

已知问题

目前没有已知的重大问题。如遇到问题,请查看日志文件 logs/labelflow.log 并反馈。

技术支持

如遇到问题或有功能建议,请通过以下方式联系:


开发完成日期: 2025年11月4日
版本号: V0.0.5