Skip to content

v0.3.4 · 结构收敛、IPC 类型化与交互优化

Choose a tag to compare

@BUGJI BUGJI released this 30 Sep 20:01
· 14 commits to main since this release

0.3.4 · 结构收敛、IPC 类型化与交互优化

内部结构(无界面行为变化)

  • 统一导入别名:@shared / @renderer 已配置但此前闲置,现将跨模块的深层相对路径((../)+shared/... 及 renderer 内 3 层以上导入)统一改用别名
  • 新增 shared/ipc.ts 的 IPC 常量表,作为 preload 与主进程共同的唯一通道来源;新增主进程 handle() 注册器,把每个 handler 的通道名与入参 / 返回值绑定到 IpcApi,通道或签名不一致会直接编译报错
  • 抽取共享路径工具 shared/path.ts(normalizeSlashes / dirName / baseName / isAbsolutePath / joinPath / relativeToDir),替换 renderer 与主进程中 5 处重复实现
  • 主题色解析抽出 hexToRgb 复用;新增通用 UiIconButton,ProjectBar 快捷按钮改用该组件 + lucide 图标,移除约 130 行内联 SVG 与重复样式
  • 新增退出前未保存守卫所用的 IPC 通道(app:set-dirty / app:confirm-quit / app:quit-request),并纳入通道表回归测试

交互与界面

  • 时间轴悬停光标反馈:空白区 / 标记 / BPM 点显示可放置或可拖拽形态,拖动、滚动、框选、快速画笔分别显示对应光标
  • 数值输入框支持 ↑/↓ 步进(步进前先提交半输入的值)
  • 轨道重命名按 Esc 取消修改(此前只能回车 / 失焦提交)
  • Esc 逐层关闭:先关音频分析面板,再关属性卡
  • 快捷键可发现性:文件 / 编辑菜单显示 Ctrl+S / Z / Y / X / C / V,撤销 / 重做在无可操作时置灰
  • 窄窗口自适应:窗口变窄时依次隐藏缩放 / 采样率 / 网格等次要读数,收紧项目栏与底部走带栏布局,窄窗下隐藏「音量」文字
  • 提高次要文字与禁用态在暗色主题下的对比度
  • 无障碍:音高跟随开关、速度输入、音量滑杆补充可访问名;播放 / 停止 / 回到起点补充 aria-label;数字微调按钮移出 Tab 与读屏序列
  • 工具提示去掉每个实例重复的 Provider,减少组件开销

性能

  • 标记绘制按可见拍位区间二分裁剪,屏幕外标记不再逐帧参与遍历

修复

  • 插件 callMain:修正 invokePlugin 参数被多包一层数组的问题,插件主进程处理器现在收到正确展开的参数
  • 修复 BPM 密度条颜色不生效:Canvas 不支持以 CSS 变量作为填充色,改用调色板常量着色
  • 修复首屏空白工程与打开工程(音频 MD5 静默校验)时误显示「未保存」:系统生成的默认轨道不再标记为已修改;加载工程自带音频不再计入用户编辑(此前整个静默校验与分析期间都会显示未保存)
  • 新增退出未保存守卫:关闭窗口时若工程有未保存修改,弹出「保存并退出 / 放弃并退出 / 取消」,经正常保存流程写盘后再退出(此前仅询问是否退出,新建工程未选择保存路径时可能丢失修改)
  • 界面细节:首屏 CSS 变量与主题定义对齐,消除启动瞬间的文字色跳变;修复自定义滚动条被标准 scrollbar-color 覆盖而不生效;移除 Element Plus 残留样式;设置弹窗关闭按钮统一改用图标
  • 样式系统:新增等宽字体、控件尺寸、派生圆角与禁用态透明度 token,统一主编辑器与设置面板的字体 / 尺寸 / 圆角 / 置灰表现;输入框恢复文本可选中;时间线状态栏吸附提示纳入 i18n;轨道行高亮、设置搜索结果闪烁与面板过渡遵循系统「减少动态效果」
  • 样式系统(续):字号抽为 --bdg-fs-* 命名 token,替换 100 余处重复的 calc(Npx * var(--bdg-font-scale));层叠顺序集中为 --bdg-z-*;插件菜单状态与轨道便签改用 lucide 图标,移除字符占位与内联 SVG

测试

  • 新增 path / ipc(通道表回归)/ limits / text 单测,并补充 theme 颜色工具用例
  • 新增工程打开回归测试:默认轨道不标脏、打开工程匹配 / 不匹配 / 无音频均保持干净、用户加载音频仍标脏

安装包:Beat-Data-Generator-0.3.4-setup.exe

English summary

  • Chore: ignore the Windows reserved device name nul.
  • Fix: the unsaved indicator no longer shows on a blank first screen or while opening a project during the silent audio MD5 check. The synthetic default track is not counted as an edit, and loading a project's own audio is not marked dirty (previously the whole silent check + analysis appeared as unsaved).
  • Internal: unified @shared / @renderer import aliases; added a typed IPC channel table with a main-process handle() registrar bound to IpcApi; extracted shared path helpers; added a reusable UiIconButton; added the quit-guard IPC channels.
  • UI: timeline hover cursors, arrow-key stepping in number inputs, layered Esc closing, shortcut discoverability, narrow-window adaptation, better dim/disabled contrast, and accessibility labels for icon-only controls.
  • Perf: culled off-screen markers when drawing the beat grid; removed per-instance tooltip providers.
  • Also included: the unsaved-changes quit guard, theme/style token system, and additional unit tests.