Code Review :代码审查 + 产物体积 −12.2%(890,880 → 782,336 B)+ 面板结构收敛 + 离屏验证工具入库 #3

Merged
LuChiChick merged 22 commits from Code_Review into dev 2026-11-04 09:54:20 +00:00
4 changed files with 1097 additions and 996 deletions
Showing only changes of commit 38fbd4b465 - Show all commits

No files matched your search

+43 -1
View File
@@ -1946,7 +1946,6 @@ namespace jdi
* @param [IN] lanes 网格绘制信息集合。 * @param [IN] lanes 网格绘制信息集合。
*/ */
void PaintEdgeCursor(gd::Graphics& g, const std::vector<LaneVisual>& lanes); void PaintEdgeCursor(gd::Graphics& g, const std::vector<LaneVisual>& lanes);
/** /**
* @brief 确保面板图层缓存位图可用(尺寸不符时重建)。 * @brief 确保面板图层缓存位图可用(尺寸不符时重建)。
* @return 可用返回 true。 * @return 可用返回 true。
@@ -2213,6 +2212,49 @@ namespace jdi
}; };
}; };
/**
* @brief 「边沿计数」表格面板的**行内容**(固定表头 + 可滚动数据行)。
*
* 面板骨架(边框 / 标题栏 / ✕ / 滚动条外观)由 `PaintEdgeCursor` 负责,
* 这里只画表格内部。定义在 `PlotViewPanelPaint.cpp`。
*
* @param [IN,OUT] g 绘图上下文。
* @param [IN] layout 面板布局(表头、列边界、行矩形全部来自它)。
* @param [IN] tabLane 该网格配置(横向光标阈值)。
*/
void PaintPanelCountTableRows(gd::Graphics& g, const EdgePanelLayout& layout,
const Lane& tabLane);
/**
* @brief 列表式面板(均值滤波 / 中心轴 / 弱峰调整 / 重采样 / 选区截取)的**行内容**。
*
* 条目栏(三角 + 名称 + 复选框)+ 展开后的参数行;参数行形态由 `kind` 决定。
* 定义在 `PlotViewPanelPaint.cpp`。
*
* @param [IN,OUT] g 绘图上下文。
* @param [IN] layout 面板布局。
* @param [IN] tabLane 该网格配置(勾选状态 / 参数 / 悬停与拖拽态)。
* @param [IN] kind 面板种类。
* @param [IN] laneIndex 网格下标。
*/
void PaintPanelListRows(gd::Graphics& g, const EdgePanelLayout& layout, const Lane& tabLane,
EdgePanelKind kind, std::size_t laneIndex);
/**
* @brief 「自由标记」面板的**内容区**(分组栏 + 表头 + 条目 + 吸顶)。
*
* 绘制顺序固定为 条目 → 表头 → 吸顶分组栏(最后画的压住向上滚动的条目)。
* 定义在 `PlotViewPanelPaint.cpp`。
*
* @param [IN,OUT] g 绘图上下文。
* @param [IN] layout 面板布局(含 `markerGroups` / `markerRows`)。
* @param [IN] tabLane 该网格配置(透明度 / 选中行 / 悬停态)。
* @param [IN] tabLanes 全部网格(取各列实测宽度)。
* @param [IN] laneIndex 网格下标。
*/
void PaintPanelMarkerGroups(gd::Graphics& g, const EdgePanelLayout& layout, const Lane& tabLane,
std::vector<Lane>& tabLanes, std::size_t laneIndex);
/** /**
* @brief 计算某个实验性功能面板的布局。 * @brief 计算某个实验性功能面板的布局。
* @param [IN] laneIndex 网格下标。 * @param [IN] laneIndex 网格下标。
@@ -1314,6 +1314,28 @@ namespace jdi
return metrics; return metrics;
} }
/**
* @brief 绘制浮动面板**内容区滚动条**(轨道 + 滑块)。
*
* 三个排版分支(表格 / 列表 / 自由标记)共用同一段外观:任何微调(颜色、圆角、
* 最小滑块高度)只需改这里一处。`scrollTrack` 为空矩形时直接返回。
*
* @param [IN] g 目标绘制上下文。
* @param [IN] layout 面板布局(取 `scrollTrack` / `scrollThumb`)。
* @param [IN] theme 当前主题。
*/
inline void PaintPanelScrollBar(gd::Graphics& g, const PlotView::EdgePanelLayout& layout,
const Theme& theme)
{
if (layout.scrollTrack.Width <= 0.0f)
{
return;
}
UiFillRoundRect(g, layout.scrollTrack, layout.scrollTrack.Width * 0.5f,
WithAlpha(theme.border, 0x88));
UiFillRoundRect(g, layout.scrollThumb, layout.scrollThumb.Width * 0.5f, theme.borderStrong);
}
/** /**
* @brief 计算一条派生曲线在给定采样窗口内的取值(同步路径与后台线程共用)。 * @brief 计算一条派生曲线在给定采样窗口内的取值(同步路径与后台线程共用)。
* *
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff