Commit Graph

216 Commits

Author SHA1 Message Date
gaozheng 3daaad3de3 fix(controller): setCheckedTms busy 时挂起重放(不丢弃) + 切项目清 currentParentId/挂起态 2026-06-10 21:22:39 +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 6cf53ab199 fix(controller): 无条件清异常缓存(跨空间) + 移动语义 + 信号参数正名 2026-06-10 20:29:46 +08:00
gaozheng 8cab498f81 feat(controller): selectObject/setCheckedTms/selectDataset 编排 + 异常缓存 2026-06-10 20:22:09 +08:00
gaozheng 4621e11c73 feat(data): 仓储泛化 loadRows + 对象/数据集详情 + 按TM异常 接口实现 2026-06-10 20:15:00 +08:00
gaozheng a21d392816 feat(data): groupExceptionsByConsortium 按异常体分组 + 独立异常 2026-06-10 20:09:37 +08:00
gaozheng acf71bdaef feat(data): parseExceptions 映射异常字段 + 详情摘要 2026-06-10 20:03:28 +08:00
gaozheng 0018c11e0a feat(data): parseDynamicForm 合并动态表单字段定义与值(含排序) 2026-06-10 19:56:55 +08:00
gaozheng 37300d523e docs(plan): 对象单击/勾选驱动三面板 实现计划(TDD,10 任务) 2026-06-10 19:48:22 +08:00
gaozheng c3cedd8c2a docs(spec): 异常面板纳入异常体只读树(对象→异常体→异常+独立异常),详情展开做/眼睛推迟 2026-06-10 19:38:29 +08:00
gaozheng 8ac5f33c7f docs(spec): 对象单击/勾选驱动 数据列表·异常·属性 三面板(接真实API)设计 2026-06-10 19:27:32 +08:00
gaozheng 439737a457 Merge pull request 'refactor/pure-qt-ui' (#3) from refactor/pure-qt-ui into main
Reviewed-on: https://gitea.geomative.cn/gaozheng/geopro/pulls/3
2026-06-10 18:41:52 +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 0edfa56ec6 docs: 设计规范落地计划 + 基线与偏离记录 2026-06-10 15:14:44 +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
gaozheng ec428ccaca fix(ela): 面板占位按钮(筛选/上传/添加/导出/折叠)改 Ela 字体图标
之前用 makeGlyph 位图 + 30×30 → 偏大且发糊。改为 ElaIconButton 字体图标(actionElaIcon 映射
Glyph→ElaIconType: Filter/Upload/Plus/Download/ChevronUp), 16px 图标 + 28×28 按钮,
与顶栏 帮助/通知/设置 一致: 清晰、随主题、尺寸协调
2026-06-10 11:23:54 +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