gaozheng
|
08b8ebbf01
|
feat(ui): 统一对话框外壳+全局控件高度,数据集属性改只读
对话框外壳(formkit)统一,编辑态与只读态同款卡片/分组/边距/按钮栏:
- 新增 dialogRoot/formCard/cardBody/addDialogButtons;buildDetailDialog 复用 formCard
- 生成三维体/导入/导出/异常保存/对象新建/等值线/色阶/设置等对话框迁到统一外壳
- FormKit.hpp 直接 include QLabel/QFrame(editLabel/formCard 返回类型在调用点需完整)
全局控件高度/外观一次补齐(QSS,覆盖所有对话框):
- QSpinBox/QDoubleSpinBox 经 QAbstractSpinBox 统一 box,与输入框/下拉框同高;上下按钮扁平 chevron
- QPlainTextEdit/QTextEdit 补输入框同款边框/圆角/底色
- 新增 chevron-up.svg(数字框上箭头)
数据集属性改为纯只读:移除"修改描述"功能(QTextEdit+保存+saved 信号+repo 依赖),
DatasetAttrPanel 构造简化、main.cpp 相应接线清理
|
2026-06-23 09:13:17 +08:00 |
gaozheng
|
959f030c98
|
feat(ui): 表单渲染单一真相层(formkit)+只读渲染器(KeyValueView),统一编辑/只读/详情表单
把分散在各文件手搭的表单收敛到唯一实现,杜绝"同类控件各处不一"的漂移:
- 新增 FormKit(DetailForm/buildDetailDialog + makeEditForm/editLabel/capField/addSection)
- 新增 KeyValueView 为唯一只读键值渲染器(§6.4);DynamicFormView 改为内嵌它
- 三维体/切片/异常详情对话框由裸 QFormLayout 迁到 DetailForm+KeyValueView(随内容自适应)
- 生成三维体对话框 + DynamicFormEditor 改用 formkit 可编辑套件(标签列/行距/分组逐像素一致)
- 分组标题统一为 formkit::addSection(编辑态与只读态共用同一段代码)
控件一致性:
- 下拉框/日期框扁平 chevron 箭头(qrc 内嵌 SVG),去 Fusion 原生斜角;日期框补齐输入框同款 box
- 无候选项的"选择"字段退化为 QLineEdit,不再用几何异类的可编辑下拉框
- QComboBox/QDateEdit/QTimeEdit min-height/padding 与 QLineEdit 对齐 → 同高
规范:§7.0.2 标签列宽由区间改精确常量(可编辑100/只读72);新增 §7.0.10 实现纪律
(唯一实现、禁手搭 QFormLayout、精确常量、控件构造一致性、新表单并排验收)
|
2026-06-23 07:28:48 +08:00 |
gaozheng
|
5e60446210
|
feat(vtk): 色阶编辑器(2D/3D共享)+模板库后端+剖面着色修正+二维数据集足迹
本会话主要交付:
- 色阶配置对话框 1:1 复刻原版(colorLevel/contourLevel/contourLine/colorEditor + colorUtils):
左三列⚙表格(层级/线形/颜色) + 层级⚙/线形⚙/颜色⚙ 子对话框 + 连续渐变(直方图/读出/min-max/反转)
+ .lvl/.clr 导入导出;文案/校验对齐原版精确 i18n。
- lvl/clr 模板库接真实后端:IColorTemplateRepository + ApiColorTemplateRepository,
另存/打开/新建色阶/配色方案下拉 经仓储注入 2D(GridDataChartView)与 3D(主对话框)。
- 剖面帘面着色对齐原版 threeContour.js getTerrainColor:上界 stop 取色 + 满 RGB,
修正"色带整体下移一格 / 发浅发灰 / 丢 alpha"导致与原版差异大的问题。
- 二维数据集视图首切片:勾选轨迹类数据集 → 足迹平铺进 View3D 地图
(Api3dRepository::loadMapLine 走 dd/ert/trajectory/line + MapLineActor + col2D 接线),
view2DMode 控摆放高度,顶/底锚真实地表高程(zRefElev)。
- 测试 252 全绿。
并含本分支前序未提交的 UI 工作(ToastOverlay/TopBar/Theme/DynamicForm/若干 panel),
经 CMakeLists/main.cpp 纠缠,随此 checkpoint 一并提交。未纳入未跟踪的 png/yml 及审查报告 txt。
|
2026-06-22 12:48:45 +08:00 |
gaozheng
|
5f02d494dc
|
fix(theme): 复选指示器全局统一(清晰可见,规避Fusion浅底过淡) + 失焦保持选中,移除对象树本地重复样式
|
2026-06-10 17:09:09 +08:00 |
gaozheng
|
b78969471e
|
refactor(theme): 登录/设置迁移令牌 + 删除遗留 kDarkMap 字符串替换路径(暗色全由令牌双值驱动)(规范§13.1)
|
2026-06-10 16:57:10 +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
|
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
|
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
|
0867636ea4
|
feat(ela): 统一品牌强调色 + 切换器箭头修复 + 图标中性化 + 树缩进收紧
配色根因: Ela 默认主色(#0067C0亮/#4CC2FF暗)与项目品牌蓝 #2D6CB5 是两种蓝, 互相打架。
- applyBrandAccent(): 用 ElaTheme::setThemeColor 把 Primary 设成品牌蓝(亮 #2D6CB5/暗 #5E9BD6,
含 Hover/Press 三态) → 所有 Ela 原生控件选中/激活/标题栏强调 + 本项目 QSS 共用一套蓝
- 切换器图标: #2D6CB5 → setThemedGlyph 中性主题色(蓝只留给选中/激活), 与面板图标一致
- 切换器箭头: 成员 QToolButton* → ElaToolButton*, setMenu 走 Ela 重载 → Ela 自绘清晰展开箭头
(之前去掉手加的▾后没箭头, 是因为基类 setMenu 不触发自绘)
- 对象树缩进 20→14, 更紧凑
|
2026-06-10 11:05:45 +08:00 |
gaozheng
|
2be49b205c
|
fix(ela): 图标按钮变形 + tooltip 丑
- ElaIconButton(icon,pixelSize,parent) 不设固定尺寸→图标被压扁; 改用带固定宽高的构造
(TopBar help/bell/gear: icon,18,34,34); PanelHeader 操作按钮(QPixmap 构造)显式 setFixedSize(30,30)
- 删全局 QToolTip QSS(深蓝底+蓝边框+圆角→弹窗露直角且不像原生)→ 用系统原生工具提示
|
2026-06-10 10:35:50 +08:00 |
gaozheng
|
68d832c57b
|
fix(ela): 登录窗主题化 + VTK 背景稳健随主题 + 扫清所有硬编码浅色 QSS 遗漏
- 登录窗: setStyleSheet → applyThemedStyleSheet(整窗随主题, 品牌带文字用 white 关键字恒白);
refreshBtn/errorLabel 也随主题。修暗系统下浅窗+暗 Ela 控件割裂、占位文字看不清
- VTK: 改为主题切换时重跑 rebuildCentral/rebuildDetail(走完整渲染必重绘, 兼顾 syncSystemTheme
异步切暗时序); rebuildDetail 也按 vtkBackground 设背景
- 主动扫描修掉遗漏: dockManager 分隔条、数据集/文件列表、对象树枝/hint、空状态标题/提示 全走主题
- themed() 公共助手(给需拼接 ADS 样式的 dockManager)
|
2026-06-10 09:32:22 +08:00 |
gaozheng
|
f5eff9e185
|
feat(ela): C VTK 视口背景随主题 + A 浮层勾选框 Ela 化
- vtkBackground(): 取 ElaTheme 窗口底色; CentralScene/详情渲染器初始用它; 切主题时中央+详情重设+刷新
- 浮层图层勾选(帘面/体素/切片/地形) → ElaCheckBox
- 说明: 自定义 chrome(工作空间/项目切换器/图标按钮/PanelHeader tab/工具条)保留并随主题(强换 Ela 会丢设计); 状态栏由 QSS 随主题
|
2026-06-10 09:17:45 +08:00 |
gaozheng
|
57c452e2d3
|
feat(ela): 菜单全换 ElaMenu/ElaMenuBar(根治圆角露直角) + 登出功能
- TopBar: 4 主菜单/子菜单/切换器菜单 → ElaMenu, 菜单栏 → ElaMenuBar(自绘透明圆角弹窗+随主题);
去掉 #appMenuBar 内联 QSS; Theme.cpp 删除 QMenuBar/QMenu QSS(否则 border-radius 仍露直角)
- 登出: 头像改可点击 QToolButton + ElaMenu「退出登录」→ logoutRequested 信号;
main 接信号 → forgetSession() 清凭证 + QProcess 重启回登录页(撤销之前的 GEOPRO_FORCE_LOGIN 补丁)
|
2026-06-10 09:12:05 +08:00 |
gaozheng
|
4a785ede88
|
fix(ela): 内联 chrome 也跟随主题 — 修暗色下切换器文字看不清等
截图问题根因: TopBar/PanelHeader/3D浮层 用每控件内联 setStyleSheet(硬编码浅色 hex),
未走全局 ElaTheme 替换 → 暗色下保持浅色令牌(深字落深底→看不清; 白底面板表头等)。
新增 applyThemedStyleSheet(widget,设计稿QSS): 按 ElaTheme 角色着色 + 随明暗自动重着色。
TopBar/PanelHeader/layerPanel/layerTitle 内联样式全改走它; 补 #EEF1F5/#E6EAF1/#EAEEF5 角色。
|
2026-06-10 08:59:59 +08:00 |
gaozheng
|
8a82029553
|
fix(ela): 工作台配色改为取自 ElaTheme(里外一致) — 修明暗都不对
根因: 我那套自挑的浅/暗配色与 ElaWindow 外壳的 Fluent 配色不一致, 里外两种色, 明暗都割裂。
改法: kRoleMap 把设计稿色令牌按语义角色映射到 ElaTheme 颜色角色, styleSheetForMode/
buildPalette 用 eTheme->getThemeColor(当前模式,角色) 取真实颜色, 与外壳同源。
(已知: #FFFFFF 兼作面板底与按钮文字, 全局替换后暗色下默认按钮文字对比度略弱, 影响很小)
|
2026-06-10 08:53:00 +08:00 |
gaozheng
|
26404cee2f
|
feat(ela): P2 暗色主题桥 — ElaTheme 明/暗 → 全局 QSS+调色板联动
- Theme.cpp: kDarkMap 浅→暗 hex 映射, 复用 kStyleSheet 结构生成暗色 QSS(含 ads--*);
buildPalette(dark) 暗色调色板; applyThemeMode(app,dark); applyTheme=浅色快捷入口
- main.cpp(ela 分支): 连 ElaTheme::themeModeChanged → applyThemeMode 同步非 Ela 面;
初始对齐(解 review C2); Ctrl+Shift+T 切换(正式按钮待 P3 TopBar Ela 化)
- VTK 视口背景暗色联动记入 P4(渲染器在 buildWorkbench 内, 需另接)
|
2026-06-10 07:43:46 +08:00 |
gaozheng
|
1a9fb72cf0
|
feat(ui): impeccable 设计令牌体系 + 空状态/语义色/动效 + dock 标题修复
- typeset: Theme.hpp 新增排版令牌(type::),统一各处散落字号/字重
- layout: 间距/圆角令牌(space::/radius::),圆角 6 档→2 档,手调奇数余白对称化
- delight: 中央空状态引导浮层、上下文化加载文案、登录错误淡入
- colorize: 语义色令牌(semantic::),项目状态着色、状态栏错误染色、异常徽标警示色(休眠)
- overdrive(休眠): 详情视图相机补间+actor淡入(animateReveal),待 dd 详情渲染接通后激活
- fix(dock): restoreState 后重新隐藏 ADS 子窗口标题栏,修复已保存布局下标题栏复现
|
2026-06-09 20:26:00 +08:00 |
gaozheng
|
72761fc05f
|
feat(ui): 工作台与登录 UI/UX 整体重构,对齐 Web 原型
- 登录窗品牌化重设计(头部横幅+纵向字段),移除默认账号密码
- 全局浅色主题精致化:基准字体 10pt、去线框留白、下划线标签页、扁平分隔条、High-DPI 直通、压平 Fusion 3D 立体描边
- 顶部:菜单栏(视图/项目管理/业务工具/设备 多级菜单)+ 工具条(工作空间切换/项目选择/帮助·通知·设置/用户)
- ADS 子窗口去除关闭·浮动·拖动等操作并隐藏自带标题栏;改用自绘面板表头(图标+标题+操作按钮)
- 右侧异常列表/对象属性合并为 Tab 面板,属性独立面板;数据集动态标题+数量徽标
- 矢量图标体系(Lucide SVG via QSvgRenderer);状态栏常驻坐标系/世界系原点
- 对象树修复:单标题、保留折叠箭头、选中高亮不覆盖缩进列
|
2026-06-08 21:06:59 +08:00 |