修复拆分网格误继承实验性功能 / 阶跃线宽 / 面板拖拽残影 / 自由标记卡顿与交互
- 拆分网格:实验性功能只由原网格的首个信号继承(LaneCarry::owner); SplitLane 只让第一份继承;新增 PruneLaneSignalItems 按 lane.signals 过滤四类 逐信号条目(修复"新网格出现别人的固定点、面板里却查不到") - 阶跃信号:包络带横向膨胀半径 ceil -> floor(1px 线宽不再把竖直沿撑成 3px) - 浮动面板:面板位置移出 PanelGlobalKey(拖动单个面板不再重画全部面板), 新增 vacatedRects 让"上一帧被移动/缩小/关闭的面板腾出的区域"也强制重画 - 自由标记:新增 FreeMarkerContents 内容缓存(键不含视界),大量固定点时拖光标/平移不再逐帧采样; 透明度滑块与光标模式解耦(始终显示);悬停胶囊恢复不透明(瞄着被遮住的数据点时除外); 胶囊与面板五列按实测文本撑开,不再省略 - 面板交互:折起指示器与信号列表组名同款三角;GX 徽标/标题栏悬停不改光标、移除徽标气泡; 标题栏双击滚动到该网格(单击不触发,双击不再折起) - 验证:新增离屏 .preflight/fixcheck 37/37(三处 A/B 均能如实失败); 回归 round3check 31/31、round4check 34/34、round5check 5/5、editcheck 20/20、convcheck 18/18; make release/debug 零警告
This commit is contained in:
1 parent
3400ac7c29
commit
8f735d51be
8 files changed
+654
-198
No files matched your search
@@ -5,6 +5,7 @@
|
||||
#include <cmath>
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
#include <array>
|
||||
#include <limits>
|
||||
#include <string>
|
||||
#include <atomic>
|
||||
@@ -1013,6 +1014,17 @@ namespace jdi
|
||||
*/
|
||||
std::vector<SignalRef> freeMarkerCollapsedGroups;
|
||||
|
||||
/**
|
||||
* @brief 「自由标记」面板五列的**实测内容宽度**(设备像素,0 = 还没量过)。
|
||||
*
|
||||
* 用户 2026-10-21 明确要求:面板里的取值 / 枚举文本 / 增量 / 时刻 / 间隔
|
||||
* **不得出现省略号(…)**。因此列宽不能再用固定值:绘制该面板时顺便把每格
|
||||
* 真实文本量一遍,取最大值存到这里;布局(`EdgePanelWidth` / `EdgePanelLayoutFor`)
|
||||
* 用它与缺省列宽 `kFreeMarkerColumnWidths` 的较大者,于是列宽自然贴合内容。
|
||||
* ⚠️ 存的是**设备像素**(已经乘过 DPI 缩放),与字体直接对应。
|
||||
*/
|
||||
std::array<float, 5> freeMarkerColumnWidths{};
|
||||
|
||||
/** 某信号分组在「自由标记」面板里是否被收起。 */
|
||||
bool FreeMarkerGroupCollapsed(const SignalRef& ref) const
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user