v0.1.8
VOFA-NEXT Release Notes
v0.1.8
This release is a usability & polish release: dock dragging is rebuilt on pointer events with a ghost preview that follows the cursor — reliable under WKWebView, where the old HTML5 drag-and-drop was flaky; a third built-in theme "Monet" joins the list together with a concentric radius token system, pill-style activity bar buttons and an overflow-driven responsive status bar; the new Quick Start panel applies built-in or imported workspace templates in one click, and backups become v2 sectioned snapshots that can be split-exported and selectively imported; double-clicking a widget node now reopens its data window (with a first-close onboarding hint); on Windows the broken native menu bar on transparent windows is replaced by a fully themed in-app menu bar with working zoom shortcuts; plus a waveform cursor fix for DPR displays.
✨ New Features
1. Pointer-Based Drag & Drop with Ghost Preview
- New dockDrag controller: pointer-based dragging for tabs / cards / widgets / sidebar title bars — reliable under WKWebView where HTML5 DnD is flaky.
- Ghost preview follows the pointer; drop zones (page edges, card edges, sidebar edges, node canvas) are hit-tested by the controller instead of dataTransfer.
- Tab-bar merge hover and canvas drop highlights are driven from the controller.
- Removed SnapDropOverlay and all HTML5 drag handlers; added unit tests for the drag controller.
2. Monet Theme, Radius Tokens, Activity Bar Pills & Overflow-Driven Status Bar
- New "Monet", a low-saturation grey dark theme — the 3rd built-in theme.
- Concentric radius tokens (12 / 8 / 6) applied across chrome components.
- Activity bar switches to pill-style buttons with even inset alignment.
- Status bar tiers are now overflow-driven (replacing fixed pixel breakpoints) with compact percentage-only buffer indicators; the status bar visibility toggle is wired up.
- Fix inline search input double focus ring (Settings search, port filter).
3. Quick Start Templates & Sectioned Split Backup
- Quick Start panel (Rocket in the activity bar): one-click apply of built-in templates (Math / Filter / CAN / Serial / Demo) or an imported template file.
- Applying replaces the workspace, or merges the template as a new control tab with full ID remapping (widgets, nodes, edges, RawData port handles, dock cards).
- Backup snapshots move to v2 and become sectioned: node graph, window layout, settings, transport+protocol, widgets+tabs. The new Split Backup dialog exports only the selected sections and imports selectively; legacy v1 snapshots migrate automatically (all sections).
4. Double-Click to Reopen Windows & Unified Prompt Style
- Double-clicking a widget node on the canvas now reopens or activates its data window; the widget→tab mapping is centralized in lib/utils/widgetTab.ts (tab id equals widget id), shared by addWidget and the new reopen path.
- Window-backed nodes show a "double-click to open" hint and tooltip.
- Closing a data window for the first time (per session) pops an onboarding-style toast explaining that the widget node stays on the canvas and can be reopened by double-clicking; it respects the global contextual-tips setting.
- In-app prompt surfaces are unified with the first-run tour look: a new prompt-card CSS family (card chrome, eyebrow, title, body, primary/ghost buttons) applied to notification toasts, contextual hint bars and the dropped-data popover.
5. Windows: Custom Menu Bar for Transparent Windows
- The Windows native menu bar cannot render correctly on a transparent (WS_EX_LAYERED) window — white-on-white text with content showing through. It is replaced by a fully themed custom menu bar (App / File / Edit / View / Window / Help) rendered in the webview on Windows; macOS and Linux keep the native menu.
- Previously inert zoom items are wired to real WebView2 zoom via setZoom, with a Windows-only capability for the required window APIs; menu accelerators (Ctrl+T/W/B/R, zoom keys) are handled.
6. Waveform Cursor Fix on DPR Displays
- The uPlot bounding box is now converted to CSS pixels so cursor positions line up correctly on high-DPI displays.
📦 Installers
- macOS:
.dmg— universal / arm64 / amd64 - Linux:
.deb/.AppImage/.rpm - Windows:
.msi/.exe(NSIS)
VOFA-NEXT 发布说明
v0.1.8
本次发布是 体验与打磨 版本:停靠区拖拽全面改为 基于指针事件 + 幽灵预览(WKWebView 下更可靠,替代了不稳定的 HTML5 拖拽);新增第三个内置主题 Monet(低饱和度灰暗色),配套同心圆半径令牌(12/8/6)、活动栏胶囊按钮与 溢出驱动的分级状态栏;新增 快速开始 面板(一键套用内置/导入的工作区模板),备份升级为 v2 分节快照(可分节导出、选择性导入);画布上 双击控件节点即可重新打开/激活其数据窗口(首次关闭时有引导提示);Windows 上透明窗口无法正常渲染原生菜单栏,改为完全主题化的应用内菜单栏并接通真实缩放快捷键;另修复高 DPI 显示器上的波形光标定位。
✨ 新特性
1. 基于指针事件的拖拽与幽灵预览
- 新增 dockDrag 控制器:标签页 / 卡片 / 控件 / 侧边栏标题栏统一走指针拖拽——在 WKWebView 下可靠(HTML5 DnD 在此环境不稳定)。
- 幽灵预览跟随指针移动;放置区(页面边缘、卡片边缘、侧边栏边缘、节点画布)由控制器命中测试,不再依赖 dataTransfer。
- 标签栏合并悬停与画布放置高亮均由控制器驱动。
- 移除 SnapDropOverlay 与全部 HTML5 拖拽处理,新增拖拽控制器单元测试。
2. Monet 主题、半径令牌、活动栏胶囊与溢出驱动状态栏
- 新增 Monet:低饱和度灰色暗色主题(第 3 个内置主题)。
- 同心圆半径令牌(12 / 8 / 6)统一应用于各界面组件。
- 活动栏改为胶囊样式按钮,内边距对齐更均匀。
- 状态栏分级改为溢出驱动(取代固定像素断点),缓冲指示改为紧凑的纯百分比样式;状态栏可见性开关已接通。
- 修复内联搜索框的双重聚焦环(设置搜索、串口过滤)。
3. 快速开始模板与分节拆分备份
- 新增 快速开始 面板(活动栏火箭图标):一键套用内置模板(Math / Filter / CAN / Serial / Demo)或导入的模板文件。
- 套用可替换整个工作区,或作为新控件标签页合并(完整 ID 重映射:控件、节点、边、RawData 端口句柄、停靠卡片)。
- 备份快照升级 v2 并分节:节点图、窗口布局、设置、传输+协议、控件+标签页。新的拆分备份对话框可只导出所选分节、选择性导入;旧版 v1 快照自动迁移(全分节)。
4. 双击重开窗口与统一提示样式
- 画布上双击控件节点即可重新打开/激活其数据窗口;控件→标签页映射集中到 lib/utils/widgetTab.ts(标签页 id 即控件 id),新建与重开共用。
- 窗口型控件节点显示"双击打开"提示与 tooltip。
- 首次(每次会话内)关闭数据窗口时弹出引导式 toast,说明控件节点仍在画布上、可双击重新打开;遵循全局"上下文提示"设置。
- 应用内提示面统一为首次运行向导的视觉风格:新增 prompt-card CSS 系列(卡片边框、eyebrow、标题、正文、主/幽灵按钮),应用于通知 toast、上下文提示条与丢弃数据弹层。
5. Windows:透明窗口自定义菜单栏
- Windows 原生菜单栏在透明(WS_EX_LAYERED)窗口上无法正确渲染——白字白底、内容透出。改为在 webview 内渲染完全主题化的自定义菜单栏(App / File / Edit / View / Window / Help);macOS 与 Linux 保留原生菜单。
- 原先无效的缩放菜单项接通真实 WebView2 缩放(setZoom),新增 Windows 专属 capability;接管菜单快捷键(Ctrl+T/W/B/R、缩放键)。
6. 高 DPI 波形光标修复
- uPlot 包围盒换算为 CSS 像素,高 DPI 显示器上光标定位准确。
📦 安装包
- macOS:
.dmg— universal / arm64 / amd64 - Linux:
.deb/.AppImage/.rpm - Windows:
.msi/.exe(NSIS)