feat: 支持多视图标签页、按文件分组的多文件信号管理与网格随勾选自动收敛

数据层与视图配置解耦:新增 DataSet(多文件只读数据层)与 TabConfig(每标签页独立配置),
以 SignalRef{fileIndex,signalIndex} 标识全局信号,替换原有单文件 SignalSet。

- 标签页:新增 TabBar 组件,支持新建/切换/关闭标签页;每页独立保存信号勾选、
  颜色/线宽/显示方式、网格划分、视图范围与时间光标,互不影响。
- 网格收敛:可见性变更统一经 TabConfig 的 Set*Visible 接口并同步重算网格,
  取消勾选后对应的空网格立即回收(修复此前留下空轨道的问题)。
- 多文件分组:左侧面板改为「文件分组 + 信号」树形列表,分组可折叠、可整组勾选,
  分组复选框支持全选/部分/未选三态;新加载文件的信号默认未勾选,由用户自行选择。
- 来源标识:信号行、样式编辑区标题、波形图例与光标读数在跨文件时标注来源文件名。
- 交互补充:面板滚动条支持点击跳转与拖拽,切换标签页自动滚动到已选信号。
- 工具栏精简为「打开 CSV/适应视图/放大/缩小/合并网格/每信号一格/全选信号/清空勾选」,
  按钮宽度改为按实际文本像素测量;打开对话框支持多选文件,拖放支持批量载入。
- 新增 TestData/[2].CSV 作为跨文件对比测试数据。
This commit is contained in:
DeepSeek V4.1 Flash committed 2026-09-29 15:48:04 +08:00
1 parent 132b305544
commit 9c6c374cce
21 files changed
+4086 -1461

No files matched your search

+15
View File
@@ -0,0 +1,15 @@
#ifndef __RESOURCE_IDS_H__
#define __RESOURCE_IDS_H__
/**
* @file ResourceIds.h
* @brief Windows 资源脚本使用的资源标识符定义。
*/
/** @brief 应用程序主图标资源标识符。 */
#define IDI_APP_ICON 1
/** @brief 应用程序清单资源标识符(等价于 CREATEPROCESS_MANIFEST_RESOURCE_ID)。 */
#define IDR_APP_MANIFEST 1
#endif // __RESOURCE_IDS_H__
Binary file not shown.

After

Width:  |  Height:  |  Size: 295 KiB

+45
View File
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="JustDataInspector.Application"
version="1.0.0.0"
processorArchitecture="*"/>
<description>Just DataInspector - CSV 仿真数据波形查看器</description>
<!-- 启用视觉样式(Common Controls v6),使窗口框架与系统控件保持 WinUI 风格。 -->
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"/>
</dependentAssembly>
</dependency>
<!-- 声明 Per-Monitor V2 DPI 感知,配合代码中的 WM_DPICHANGED 处理实现多屏缩放自适应。 -->
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/pm</dpiAware>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">permonitorv2,permonitor,system</dpiAwareness>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
</windowsSettings>
</application>
<!-- 兼容性声明:声明支持的系统版本范围。 -->
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 / 11 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
</assembly>
+48
View File
@@ -0,0 +1,48 @@
#include <winresrc.h>
#include "ResourceIds.h"
////////////////////////////////////////////////////////////////////////////////
// 图标
////////////////////////////////////////////////////////////////////////////////
IDI_APP_ICON ICON "JustDataInspector.ico"
////////////////////////////////////////////////////////////////////////////////
// 应用程序清单
////////////////////////////////////////////////////////////////////////////////
IDR_APP_MANIFEST 24 "JustDataInspector.manifest"
////////////////////////////////////////////////////////////////////////////////
// 版本信息
////////////////////////////////////////////////////////////////////////////////
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS 0x0L
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080404B0"
BEGIN
VALUE "CompanyName", "Just DataInspector"
VALUE "FileDescription", "Just DataInspector - CSV 仿真数据波形查看器"
VALUE "FileVersion", "1.0.0.0"
VALUE "InternalName", "JustDataInspector"
VALUE "LegalCopyright", "Copyright (C) 2026"
VALUE "OriginalFilename", "Target.exe"
VALUE "ProductName", "Just DataInspector"
VALUE "ProductVersion", "1.0.0.0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0804, 1200
END
END