gaozheng
|
cf47314500
|
fix(ui): 散点 滚轮缩放方向反转(上滚=放大)+放开最小宽度(随面板收缩) + 色阶条居中74%宽(非满宽,对齐原版)
|
2026-06-11 16:09:00 +08:00 |
gaozheng
|
1f28505227
|
fix(ui): 原数据散点 白底+散点项关联xTop轴(修x压缩)+过原点零线 + 色阶条等宽色带/深色文字/白底
|
2026-06-11 15:55:32 +08:00 |
gaozheng
|
e405fc1565
|
feat(ui): 原数据散点视图(QwtPlot x顶轴+Panner/Magnifier+连续色阶+方块散点+独立色阶条)
- ColorBarWidget:独立 QWidget 色阶条,水平离散色带 + 断点刻度,固定高 36px,
作为 QwtPlot 兄弟 widget 布局在图表下方,不进 Qwt 坐标系(不随缩放移动)。
- ScatterPlotItem:QwtPlotItem 子类,每点画固定 7px 方块(kHalfSide=3.5px),
白色描边(1px),颜色由 ColorMapService::colorAtContinuous 连续插值决定。
- RawDataChartView:plotArea 换成 QwtPlot,x 轴顶部(xTop)、关闭 xBottom、yLeft 正常;
QwtPlotPanner(左键拖动平移)+ QwtPlotMagnifier(滚轮缩放);
setData 时重建 ColorMapService + ScatterPlotItem,按数据包围盒设轴范围;
独立色阶条随 setData 更新。
|
2026-06-11 15:40:43 +08:00 |
gaozheng
|
c7fec86d3b
|
feat(core+chart): ColorScale::stops() 暴露断点 + ColorMapService 连续插值色阶服务
- core::ColorScale 新增 stops() 方法,返回升序 (value, Rgba) 断点列表,供连续插值用。
- app::ColorMapService:从 ColorScale 构建,支持 normalized()/colorAtContinuous()/colorAtDiscrete();
连续模式在归一化断点位置间线性插值 RGB,与原版 Plotly colorscale 一致。
- cmake/qwt.cmake 补加 QWT_MOC_INCLUDE=1,修复 Qwt AUTOMOC self-include 宏保护缺失导致
Q_OBJECT MOC 代码不编入 .obj 的链接错误(LNK2019 x61 系列)。
- 新增 TDD 测试 ColorMapService.*(4 个用例,全绿)。
|
2026-06-11 15:40:27 +08:00 |
gaozheng
|
7808b8422a
|
feat(ui): 数据集详情三层UI骨架(下划线页签+原数据/网格各自工具条+网格页底部异常列表/描述)
- 新建 DescriptionPanel:只读 QTextEdit,供网格数据底部「描述」页签使用
- 新建 RawDataChartView:工具条(网格/色阶配置/图形类型ComboBox/另存为) + 图表占位(stretch) + 色阶占位(36px)
- 新建 GridDataChartView:工具条(网格/色阶配置/白化/滤波/显示开关/简化容差滑块/异常标注/自动标注/另存为) + 图表占位(stretch) + 色阶占位(36px) + 底部200px双页签(异常列表/描述)
- 重写 DatasetDetailPage:用 buildTabbedPanel 做「原数据/网格数据」下划线页签 + 右侧「导出」HeaderAction
- 删除 DatasetChartView(已被 RawDataChartView/GridDataChartView 替代)
- CMakeLists:注册新 .cpp,移除 DatasetChartView,条件链接 qwt 目标
|
2026-06-11 15:04:34 +08:00 |
gaozheng
|
82b654176e
|
fix(ui): 审查修复 loadFailed接线/控制器重入守卫+ddCode降级/散点越界/点异常/Tab deleteLater/makeLines
- main.cpp: DatasetDetailController::loadFailed 连接到 statusBar,5s 显示失败消息
- DatasetDetailController: 加 busy_ 重入守卫;ddCode 非 dd_inversion_data 时直接 loadFailed 降级
- DatasetChartView::showScatter: 按 x/y/v 三者最短长度循环,防越界;加 #include <algorithm>
- DatasetChartView::rebuildAnomalyItems: 先处理 markType==1 点异常(小方块),再走原折线/多边形分支
- DatasetChartView::clearChart: 加注释说明 scene_->clear() + anomalyItems_.clear() 不变式
- DatasetDetailPanel: tabCloseRequested 改用 deleteLater,避免在事件处理期间同步析构
- ContourBands: buildContourBands 按 opt.makeLines 决定是否开 GenerateContourEdgesOn 及提取等值线
|
2026-06-11 12:42:04 +08:00 |
gaozheng
|
08ba483550
|
feat(ui): 接线数据详情面板(移除旧VTK详情)+单击聚焦/双击打开/反向联动
- 移除旧 VTK 数据详情 dock(detailWidget/独立 renderer/工具条 原数据·网格数据·显示异常/电极/等值线)
及 rebuildDetail lambda、共享态(currentDsId/detailMode/showAnomalies/...)与相关连接
- 清理因删除产生的孤儿:animateReveal、DetailMode、kScatterPointSize、kBarBtnQss
- 新建 DatasetDetailPanel 多 Tab 面板 dock(QGraphicsView 平面图表)
- buildWorkbench 加参 DatasetDetailController&;main() 构造 ApiDatasetRepository + DatasetDetailController
- 单击=属性表单+聚焦已开页;双击=openDataset(dsId,ddCode);chartReady→openOrUpdate;
focusRequested→focusDataset;activeDatasetChanged→反向高亮列表
- 新增 kDsDdCodeRole(0x0104),populateDatasetList 写入 ddCode
- 保留 rebuildCentral 及中央场景、repo.loadGrid(grid1)
|
2026-06-11 12:18:18 +08:00 |
gaozheng
|
88d2fea9df
|
feat(ui): DatasetDetailPanel 多Tab壳(按dsId去重+反向联动信号)
|
2026-06-11 12:09:38 +08:00 |
gaozheng
|
b8c74962e8
|
feat(ui): DatasetDetailPage 原数据/网格切换+叠加开关+异常联动
|
2026-06-11 12:08:13 +08:00 |
gaozheng
|
535db496c4
|
feat(ui): AnomalyTablePanel ds级异常表(行眼睛→隐藏集信号)
|
2026-06-11 12:07:06 +08:00 |
gaozheng
|
d61775a3bc
|
feat(controller): DatasetDetailController 编排 + ErtInversionStrategy 标识
|
2026-06-11 12:04:12 +08:00 |
gaozheng
|
46c75ed419
|
feat(ui): dd 图表策略接口 + 注册表(未注册降级)
|
2026-06-11 12:01:31 +08:00 |
gaozheng
|
facb812bca
|
feat(ui): DatasetChartView 散点/等值面/异常叠加(QGraphicsView)
|
2026-06-11 11:57:49 +08:00 |
gaozheng
|
72abeaa1d8
|
fix(ui): 修复 DynamicFormView::clear() 对嵌套布局重复释放导致的崩溃
it==it->layout()(QLayout 即 QLayoutItem),原代码 delete sub 后又 delete it 双重释放。
触发:clear 一个已填充表单时(切项目/重选对象→showMessage/setForm)崩溃。
|
2026-06-10 21:31:00 +08:00 |
gaozheng
|
d435fca32d
|
feat(ui): 属性面板改两列卡片式表单(边框/底色/分隔线,主题协调)
|
2026-06-10 21:18:12 +08:00 |
gaozheng
|
7a56e49584
|
feat(ui): 接线 对象单击/勾选/数据集单击 → 三面板(移除占位)
|
2026-06-10 21:04:38 +08:00 |
gaozheng
|
0d17a00931
|
fix(ui): 对象树项目根设为非交互容器(仅 GS/TM 可勾选/单击)
|
2026-06-10 20:58:09 +08:00 |
gaozheng
|
68296a5d36
|
feat(ui): ObjectTreePanel GS三态勾选 + objectClicked/checkedTmsChanged 合并发射
|
2026-06-10 20:50:51 +08:00 |
gaozheng
|
595d65cd3b
|
feat(ui): ObjectExceptionPanel 异常+异常体只读树(含详情展开)
|
2026-06-10 20:44:25 +08:00 |
gaozheng
|
5686155faa
|
feat(ui): DynamicFormView 动态表单分组键值渲染器
|
2026-06-10 20:36:03 +08:00 |
gaozheng
|
d1be0567de
|
fix(ui): 统一图标-文字间距到6px——给切换器/页签图标加2px右内边距(Fusion内置4px+2),与面板标题(6px)一致(§6.7)
|
2026-06-10 18:39:49 +08:00 |
gaozheng
|
9680fefbe3
|
feat(topbar): 用户区按样图重做(头像竖直居中+姓名/职务两行左对齐+下拉箭头,整块可点) + 加宽下拉菜单(账户/个人资料/偏好设置/API密钥/退出登录)
|
2026-06-10 17:59:10 +08:00 |
gaozheng
|
3ccb8df4ed
|
fix(ui): 修复改名导致的停靠布局丢失(bump dockState键丢弃失配旧布局) + 用户区改回QToolButton(头像图标+姓名职务一行,整块可点)修复挤成一团
|
2026-06-10 17:41:46 +08:00 |
gaozheng
|
c953b35334
|
feat(topbar): 切换器下拉箭头换高清chevron(替代粗糙▾) + 用户区头像/姓名/职务同行且整块可点击
|
2026-06-10 17:27:37 +08:00 |
gaozheng
|
9e80b2fea1
|
feat(ui): 面板改名(对象/数据集/异常/数据集属性) + 原数据/网格数据改为下划线页签(与其他切换一致) + 表头图标间距对齐规范6px(§6.7)
|
2026-06-10 17:21:36 +08:00 |
gaozheng
|
5f02d494dc
|
fix(theme): 复选指示器全局统一(清晰可见,规避Fusion浅底过淡) + 失焦保持选中,移除对象树本地重复样式
|
2026-06-10 17:09:09 +08:00 |
gaozheng
|
2a666663e7
|
refactor(theme): 全部项目对话框迁移令牌 + 清理委托接管后失效的列表选中/前景死代码
|
2026-06-10 17:02:03 +08:00 |
gaozheng
|
b78969471e
|
refactor(theme): 登录/设置迁移令牌 + 删除遗留 kDarkMap 字符串替换路径(暗色全由令牌双值驱动)(规范§13.1)
|
2026-06-10 16:57:10 +08:00 |
gaozheng
|
8f31f043df
|
feat(panels): 异常列表卡片化(色条+类型标签+显隐眼睛,真实数据)(规范§6.3)
|
2026-06-10 16:44:35 +08:00 |
gaozheng
|
b26dcc1ca7
|
feat(panels): 数据/文件列表卡片化(标题+元信息双行+选中竖条)(规范§6.2)
|
2026-06-10 16:40:14 +08:00 |
gaozheng
|
824e8bdf62
|
refactor(theme): 工作台内联色(对象树/数据详情工具条/停靠分隔)迁移到令牌(规范§4.2/§6.1/§6.12)
|
2026-06-10 16:27:57 +08:00 |
gaozheng
|
b728631477
|
refactor(theme): TopBar/PanelHeader 内联样式迁移到语义令牌(规范§4.3/§5)
|
2026-06-10 16:21:49 +08:00 |
gaozheng
|
b2ec3459c7
|
fix(canvas): 视图详情浮层去圆角(直角)消除浅色模式四白角伪影
|
2026-06-10 16:14:51 +08:00 |
gaozheng
|
e60bdbc150
|
fix(canvas): 空状态卡片用 canvas/bg 等色无缝底(原生GL覆盖透明失效的可靠解法)
|
2026-06-10 16:08:31 +08:00 |
gaozheng
|
8eb0c7413d
|
fix(canvas): 空状态去不透明卡片(移除OpacityEffect) + 视图详情转深色画布浮层(规范§6.5/§7.11)
|
2026-06-10 16:03:21 +08:00 |
gaozheng
|
58cabc6350
|
fix(view): 2D/3D 统一面板表头(分段页签) + 画布空状态提示用 canvas 令牌融入深底(规范§5/§6.5)
|
2026-06-10 15:52:45 +08:00 |
gaozheng
|
b242240df6
|
feat(theme): 全局 QSS 模板化 + palette 从令牌,标准控件对齐规范色值(§1/§3/§6/§7)
|
2026-06-10 15:29:07 +08:00 |
gaozheng
|
425e17e6af
|
feat(canvas): 数据画布常深 #0B1320(规范§0.5/§11)
|
2026-06-10 15:22:32 +08:00 |
gaozheng
|
18d084047f
|
feat(theme): 语义令牌基础设施(令牌表+token/fillTokens API,规范§1)
|
2026-06-10 15:17:46 +08:00 |
gaozheng
|
6c34f71177
|
fix(ui): 下拉框弹窗改为紧贴文本框下方的单层列表(AppProxyStyle)
根因: Fusion 的 combo 弹窗是「菜单式覆盖当前项」(SH_ComboBox_Popup=true) → 位置怪、
容器框+列表两层、选中/悬停不清。AppProxyStyle 把该 hint 改为 0 → 标准「下方下拉列表」:
位置紧贴文本框、单层、当前项与悬停项走 ::item:selected 高亮。
|
2026-06-10 14:58:01 +08:00 |
gaozheng
|
a6a3979b93
|
fix(ui): 下拉框弹窗 — 干净填充选中 + 去边框/圆角伪影
QComboBox 弹窗当前/选中项原来显示一个细边框方块(Fusion 默认 + 缺 ::item 规则)。
补 QComboBox QAbstractItemView::item 规则: 统一行高/内边距、去边框、选中=浅蓝填充+强调色文字;
去掉 view 的 border-radius(防圆角弹窗露直角)。改一处(单一 QSS)即生效。
|
2026-06-10 14:52:27 +08:00 |
gaozheng
|
9010b20b57
|
refactor(ui): 方案A — 移除 ElaWidgetTools,统一为标准 Qt + 单一设计系统
根因: 此前 Fusion+自定义QSS+ElaWidgetTools(自绘控件) 三套样式系统并存、互相打架,
是各种丑/不一致的来源。本次彻底收敛为一套:
- 移除 ElaWidgetTools 依赖(CMake FetchContent + 链接 + spike);所有 Ela* 控件 → 标准 Qt:
ElaWindow→QMainWindow(原生标题栏)、ElaMenu/MenuBar→QMenu/QMenuBar、ElaLineEdit/ComboBox/
CheckBox/PushButton/ToolButton/Text/TableWidget→对应 Qt、ElaIconButton→QToolButton+glyph
- 主题系统: 自建 ThemeManager(替代 ElaTheme,QStyleHints 检测系统明暗、持久化、changed 信号热切)
+ 单一「浅→暗」颜色映射(kDarkMap,全 UI 唯一颜色来源) + 单份 QSS(明色基线,暗色按表替换)
- 主题: 跟随系统/浅/深(持久化, 启动应用→登录与主页统一); 字号缩放经 scaledPx 覆盖内联 chrome
- NOTICE/关于 同步去掉 ElaWidgetTools
- ctest 53/53
|
2026-06-10 14:44:59 +08:00 |
gaozheng
|
a13b58e09f
|
feat(settings): 设置对话框(外观/关于) + 主题持久化 + 界面字号
- 主题持久化(QSettings ui/themeMode: system/light/dark): 启动时 applyPersistedThemeMode 在弹登录窗前
应用 → 登录页与主页明暗统一(修登录页一直 dark); 设置里改主题热切, Ctrl+Shift+T 仍可用
- 界面字号(ui/fontScale: 90/100/115/130): applyPersistedFontScale 设 qApp 基准字体; scaledPx() 让
内联 QSS 的 chrome(顶栏/面板表头/工具条/登录/浮层)字号也随之缩放; 字号改动重启后整体统一生效
- SettingsDialog: 左分类(外观/关于)+右页; 外观=主题下拉+字号下拉(+立即重启); 关于=版本+第三方许可
- 顶栏齿轮 → settingsRequested → 打开设置
|
2026-06-10 14:03:16 +08:00 |
gaozheng
|
52bdf054a6
|
fix(list): 数据/文件/异常列表退回标准 QListWidget + 写死强选中色
根因: ElaListView 的选中底走 BasicSelectedAlpha, setThemeColor 改它对 ElaListView 不生效(自绘控件坑),
选中色无法变强。与对象树同理, 退回 Qt 原生 QListWidget:
- 3 列表 ElaListView+QStandardItemModel → QListWidget+QListWidgetItem(populate/加载更多/点击/勾选 全回退)
- applyListSelection: 本地 QSS 写死强调蓝选中(明 #C2D9F2 / 暗 #33527A + 适配文字, :!active 防失焦淡),
与对象树选中色完全一致, 100% 可控、明暗都清晰
- 行为(加载更多/数据集点击/异常勾选显隐)保持
|
2026-06-10 12:39:23 +08:00 |
gaozheng
|
66cf432a98
|
fix(theme): 选中底色统一加强(对象树+所有列表)
根因: ElaListView 的 BasicSelectedAlpha 默认是半透明灰、对比度弱; 树 QSS 选中也偏淡。
设计统一的强调蓝选中底(明 #C2D9F2 / 暗 #33527A, 强对比):
- applyBrandAccent: 设 BasicSelectedAlpha/BasicSelectedHoverAlpha 为该实色 → 所有 Ela 列表
选中底变清晰(并保留其 3px 强调色左竖条)
- 对象树: 本地 QSS item:selected 设同款蓝 + 适配文字色, :!active 防失焦变淡
|
2026-06-10 12:26:00 +08:00 |
gaozheng
|
934e25be54
|
fix(tree): 自绘清晰复选框(明暗都可见) + 选中整行连续(去碎片框)
- 多余选中框: 全局 QTreeView::item 去掉 border-radius+margin → 选中是整行连续一条, 不再浮动碎块
- light 复选框看不清: Fusion 原生复选框浅底边框过淡。writeCheckboxIcon 自绘 PNG
(未选=明显边框空心框, 选中=强调色底+白勾), 明暗各一套, 经 QTreeView::indicator QSS 引用,
主题切换重绘 → 明暗都清晰
|
2026-06-10 12:21:01 +08:00 |
gaozheng
|
e3a1b18efa
|
chore(ela): 去掉 GEOPRO_UI_SHELL 兜底开关 + 新增开源 NOTICE
- main: 删除 env 选壳分支与经典 QMainWindow 回退, ElaWindow 成为唯一外壳(迁移已稳定)
- NOTICE.md: 列出第三方组件与许可证(Qt LGPL / VTK BSD / ADS LGPL / ElaWidgetTools MIT /
QtKeychain BSD) 及合规要点、Ela 版本钉定说明
|
2026-06-10 12:02:43 +08:00 |
gaozheng
|
cfd39e5be8
|
fix(ela): 对象树退回标准 QTreeWidget(复选框清晰) + 行内边距收紧
ElaTreeView 是 ElaWidgetTools 自绘控件(非 Qt 原生), light 下复选框对比度不足、选中渲染有局限。
- 对象树 ElaTreeView+QStandardItemModel → 标准 QTreeWidget+QTreeWidgetItem:
复选框/展开箭头由 Fusion 原生绘制, 明暗都清晰; 行为(TM 勾选/点击)不变
- 全局 QTreeView::item padding 8px→4px: 行间距过大修正
|
2026-06-10 12:00:20 +08:00 |
gaozheng
|
464911dc57
|
fix(ela): 页签与工具条统一为同一套切换样式(消除三套不一致)
PanelHeader 页签(数据/文件, 异常列表/对象属性)从 ElaToolButton 退回 QToolButton, headerQss
恢复 tabBtn 下划线规则: 选中 = 强调色文字 + 2px 强调色下划线 — 与视图/详情工具条完全一致。
至此全 UI 的切换控件(页签 + 分段工具条)是同一种视觉语言。
|
2026-06-10 11:51:02 +08:00 |
gaozheng
|
107fed8182
|
fix(ela): 工具条选中态 + 切换器箭头改用 QToolButton+主题QSS(清晰可控)
ElaToolButton 硬限制: 选中态只画极淡 BasicHover(看不清)、展开箭头不可靠、且自绘无法被 QSS 覆盖。
故交互态强的这两类退回 QToolButton + applyThemedStyleSheet(用统一强调色):
- 视图/详情工具条(2D/3D, 原数据/网格数据, 显示异常/电极/等值线): 选中 = 强调色文字 + 2px 强调色下划线,
明暗都清晰可辨
- 切换器: QToolButton + 文字'▾'(清晰, 不再是 ElaToolButton 那个发糙/消失的箭头) + 悬停底
其余(菜单/列表/树/表单/图标按钮)仍 Ela。强调色已全局统一为品牌蓝
|
2026-06-10 11:39:20 +08:00 |