Skip to content

完善 Godot 编辑工作区、Alt 容器交互与主题界面 - #770

Open
Wang-Yang-source wants to merge 2 commits into
graphif:godotfrom
Wang-Yang-source:feat/godot-workspace-and-containers
Open

Wang-Yang-source wants to merge 2 commits into
graphif:godotfrom
Wang-Yang-source:feat/godot-workspace-and-containers

Conversation

@Wang-Yang-source

Copy link
Copy Markdown

概述

完善 Godot 分支的编辑工作区,将节点编辑、容器组织、文件操作和界面设置整合为可连续使用的流程。例如,选中方块后按住 Alt 即可预览跳跃路径并放入另一个方块,预览和实际放置始终以鼠标为中心;双击编辑中文文本时,编辑框按实际文字和样式尺寸展开。

主要改动

舞台与节点交互

  • 增加 Alt 放入/移出容器、多选移入、嵌套防循环、容器自动扩展、整体移动与空容器恢复。
  • 增加渐变跳跃弧线、阴影、落点箭头和目标提示,统一居中锚点;取消时清理反馈。
  • 完善节点直接拖动、惯性投掷、同层物理避让及等待物理稳定的事务历史。
  • 增加笔迹对象,完善连线自动选边、曲线路径、箭头贴边与割线反馈。
  • 修正文本编辑区域的尺寸计算,保留中文输入法组合输入处理。
  • 将包含关系接入保存恢复、复制粘贴、删除、撤销与重做。

工作区与界面

  • 扩展菜单、工具栏、欢迎页、无边框窗口控制和自动隐藏面板。
  • 增加文件夹侧栏、快速打开、最近文件、批量保存、文件移动/删除、手动备份和打印入口。
  • 增加搜索、大纲、引用、节点属性、颜色与快捷键设置面板,以及基础文本/Markdown 导入和 SVG/PNG/文本导出。
  • 完善明暗主题、主题切换效果、弹窗动画与关闭按钮,加入中文字体及其许可证。
  • 更新导出配置,将 Linux 导出位置设为项目相对路径 dist/project-graph.pck
  • 默认关闭 Godot 启动标志画面,启动加载期间使用纯色背景。

文档

  • 对照 master 更新 TODO.md,按优先级整理 23 项完善计划,区分未移植、部分实现和待验证风险。
  • 明确保留 Alt 始终居中的交互决定,并修正已实现功能的过时勾选状态。

实现方式

可见反馈使用 Line2D、Panel、Label 等场景节点;舞台对象保持世界坐标,包含关系通过稳定对象引用序列化。Godot 项目文件通过 Godot MCP 的脚本读取/修改、节点与资源操作处理。

验证情况

按仓库约定,本次未启动项目,未运行自动化测试或导出构建。以下均为待执行的手动验收,不代表已通过。

  • 创建写有“你好”的方块并反复双击编辑:两个字应完整显示,输入法确认不应提前退出编辑;若异常,检查文字裁切、滚动条和输入法事件。
  • 选中一个或多个方块,按住 Alt 移动鼠标进出其他方块:预览始终居中,显示跳跃弧线,实际落点与预览一致;松开 Alt 或按 Esc 后反馈应清理。
  • 完成两层嵌套、整体拖动、移出和父子循环尝试:内容随容器移动,非法嵌套被阻止,内部对象不被容器排斥;若异常,检查重复位移、归属与碰撞。
  • 对容器复制、删除、割除、撤销和重做,再保存重开:层级、文字、位置与连线引用应恢复,完整手势应对应一次历史操作。
  • 创建连线并拖动端点节点:箭头正对边缘,线身不突出箭头尖端;切割和撤销应清理并恢复关系。
  • 切换主题、UI 缩放和标签页,打开属性窗口并点击关闭:文字、按钮布局和点击范围应一致。
  • 手动检查文件打开/保存、最近文件、搜索及导入导出;失败时检查错误提示与原工程是否被改动。
  • 重新启动项目或重新导出后启动独立程序:不应显示 Godot 标志;若仍出现,检查是否运行了旧构建。

当前限制

  • Godot 的 JSON .prg 格式尚未与 master 的 MessagePack .prg 格式互通。
  • 容器选中导出的子树范围、PNG 导出引用重建等仍需完善与验证,已在 TODO.md 单独记录。
  • Section 折叠/锁定、完整连线属性、自动布局以及更多对象类型尚未移植。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant