# 项目任务清单(Project Task Checklist) 更新时间:2026-03-01 适用范围:`d:\IMGUI\EG` 本地工作区(不含远程仓库内容) ## 目标 - 保持编辑器主路径稳定运行在 ImGui + Panda3D。 - 持续收敛历史兼容耦合(`interface_manager/treeWidget/gui_manager`)。 - 基于可执行任务包推进非 VR 优化重构。 ## 当前状态总览 - Qt 运行依赖主路径已清理完成(排除 `RenderPipelineFile`)。 - 项目已进入“非 VR 结构优化阶段”。 - `_getActor` 与 `updateGizmoDrag` 第一轮拆分已完成,当前最高优先任务转为资源管理器面板拆分。 ## 已完成(Done) ### A. Qt 清理与迁移完成 - [x] 清理主路径 Qt 直接依赖:`PyQt/PySide/Qt` 扫描主路径为 `0`。 - [x] `core/InfoPanelManager.py`:去除 Qt 直接导入。 - [x] `core/selection.py`:光标逻辑改为 Panda3D 路径。 - [x] `scene/scene_manager_convert_tiles_mixin.py`:移除 `QProgressDialog`。 - [x] `ui/widgets.py`:替换为 legacy 占位模块。 - [x] `ui/icon_manager.py`:替换为无 Qt 兼容实现。 - [x] `core/world.py` / `core/vr_manager.py` / `core/vr/testing/test_mode.py`:清理 `qtWidget` 语义依赖。 - [x] `requirements/*`:移除 Qt/PySide 运行依赖。 ### B. 上下文收敛与基础重构完成 - [x] 建立 `core/editor_context.py`,并完成第一批接入: - `core/event_handler.py` - `core/selection.py` - `core/InfoPanelManager.py` - `ui/panels/runtime_actions.py` - `core/terrain_manager.py` - `scene/scene_manager_convert_tiles_mixin.py` - `scene/scene_manager_serialization_mixin.py` - `scene/scene_manager_model_mixin.py` - [x] `scene/scene_manager_io_mixin.py::loadScene` 完成两轮拆分(`556 -> 74` 行)。 - [x] `main.py::__init__` 第一轮拆分完成(`375 -> 27` 行,VR 初始化逻辑保持原样)。 ### C. 面板模块化完成 - [x] `ui/panels/editor_panels.py` 按布局拆分为 4 个模块: - `editor_panels_top.py` - `editor_panels_left.py` - `editor_panels_center.py` - `editor_panels_right.py` - [x] `editor_panels_right.py` 再拆分为 3 个子 mixin: - `editor_panels_right_transform.py` - `editor_panels_right_material.py` - `editor_panels_right_collision.py` ### D. 动画加载入口拆分完成(第一轮) - [x] `ui/panels/animation_tools.py::_getActor` 第一轮拆分完成: - 行数:`510 -> 39` - 新增 helper:`_sync_owner_model_path_tags`、`_get_valid_cached_actor`、`_try_memory_fallback_actor`、`_collect_actor_candidate_paths`、`_try_actor_from_path` 等 - 保持策略:文件路径优先,失败后内存/autoBind 兜底 ### E. Gizmo 拖拽拆分完成(第一轮) - [x] `core/selection.py::updateGizmoDrag` 第一轮拆分完成: - 行数:`278 -> 32` - 近似圈复杂度:`65 -> 10` - 新增 helper:`_validate_gizmo_drag_state`、`_apply_scale_drag`、`_apply_rotate_drag`、`_compute_axis_movement_distance`、`_apply_translate_drag` - 保持目标:gizmo 缩放/旋转/平移行为不变 ## 下一步(Next) ### N1 `资源管理器面板` 拆分(最高优先级,非 VR) - 目标文件:`ui/panels/editor_panels_left.py::_draw_resource_manager` - 当前规模:`310` 行 - 验收目标: - 提取目录/文件项渲染与右键菜单复用逻辑 - 交互行为保持一致 ### N2 `LUI 交互拖拽链路` 拆分(高优先级,非 VR) - 目标文件:`ui/LUI/lui_manager_interaction.py::_update_drag` - 当前规模:`348` 行 - 验收目标: - 入口流程收敛到 `<= 140` 行 - 保持拖拽/缩放/吸附交互一致 ## 验收标准(阶段) - 不安装 PyQt/PySide 时,`python main.py` 可进入编辑器主界面。 - 非 VR 主流程(导入/选择/变换/保存/加载)无 Qt 残余异常。 - 每轮重构后可通过最小回归(启动、导入、播放动画、保存加载)。 ## 关联文档 - 优化分析:`PROJECT_OPTIMIZATION_ANALYSIS.md` - 模块索引:`PROJECT_MODULE_INDEX.md` - 全量目录:`PROJECT_FULL_CATALOG.md` - 历史分析:`IMGUI_MODULE_ANALYSIS.md`