5.4 KiB
5.4 KiB
项目任务清单(Project Task Checklist)
更新时间:2026-03-01
适用范围:d:\IMGUI\EG 本地工作区(不含远程仓库内容)
目标
- 保持编辑器主路径稳定运行在 ImGui + Panda3D。
- 持续收敛历史兼容耦合(
interface_manager/treeWidget/gui_manager)。 - 基于可执行任务包推进非 VR 优化重构。
当前状态总览
- Qt 运行依赖主路径已清理完成(排除
RenderPipelineFile)。 - 项目已进入“非 VR 结构优化阶段”。
_getActor、updateGizmoDrag、_update_drag第一轮拆分已完成。资源管理器面板已完成“保留原布局/样式/交互”的第二轮拆分收敛。
已完成(Done)
A. Qt 清理与迁移完成
- 清理主路径 Qt 直接依赖:
PyQt/PySide/Qt扫描主路径为0。 core/InfoPanelManager.py:去除 Qt 直接导入。core/selection.py:光标逻辑改为 Panda3D 路径。scene/scene_manager_convert_tiles_mixin.py:移除QProgressDialog。ui/widgets.py:替换为 legacy 占位模块。ui/icon_manager.py:替换为无 Qt 兼容实现。core/world.py/core/vr_manager.py/core/vr/testing/test_mode.py:清理qtWidget语义依赖。requirements/*:移除 Qt/PySide 运行依赖。
B. 上下文收敛与基础重构完成
- 建立
core/editor_context.py,并完成第一批接入:core/event_handler.pycore/selection.pycore/InfoPanelManager.pyui/panels/runtime_actions.pycore/terrain_manager.pyscene/scene_manager_convert_tiles_mixin.pyscene/scene_manager_serialization_mixin.pyscene/scene_manager_model_mixin.py
scene/scene_manager_io_mixin.py::loadScene完成两轮拆分(556 -> 74行)。main.py::__init__第一轮拆分完成(375 -> 27行,VR 初始化逻辑保持原样)。
C. 面板模块化完成
ui/panels/editor_panels.py按布局拆分为 4 个模块:editor_panels_top.pyeditor_panels_left.pyeditor_panels_center.pyeditor_panels_right.py
editor_panels_right.py再拆分为 3 个子 mixin:editor_panels_right_transform.pyeditor_panels_right_material.pyeditor_panels_right_collision.py
D. 动画加载入口拆分完成(第一轮)
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 拖拽拆分完成(第一轮)
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 缩放/旋转/平移行为不变
- 行数:
F. LUI 拖拽链路拆分完成(第一轮)
ui/LUI/lui_manager_interaction.py::_update_drag第一轮拆分完成:- 行数:
348 -> 28 - 近似圈复杂度:
79 -> 7 - 新增 helper:
_process_canvas_drag、_try_start_pending_component_drag、_finish_component_drag_if_released、_update_active_component_drag - 保持目标:Canvas/组件拖拽、吸附与释放语义不变
- 行数:
G. 资源管理器面板拆分完成(保留布局版)
- 第一轮低侵入优化:
- 行数:
310 -> 163 - 近似圈复杂度:
88 -> 41 - 新增 helper:
_draw_resource_toolbar_and_filters、_load_resource_icon、_handle_resource_item_selection、_open_resource_item_context_menu、_handle_resource_file_double_click、_draw_resource_context_menu
- 行数:
- 第二轮(按当前标准重启,保持布局/样式/文案/交互顺序):
- 入口函数行数:
163 -> 23(相对原始310 -> 23) - 新增 helper:
_update_resource_manager_window_rect、_draw_resource_directory_entries、_draw_resource_directory_entry、_draw_resource_directory_children、_draw_resource_subdir_entry、_draw_resource_subfile_entry、_draw_resource_file_entries、_draw_resource_file_entry - 保持目标:不改视觉布局,不改交互语义,仅做结构分解
- 入口函数行数:
下一步(Next)
N1 属性面板超大函数 拆分(最高优先级,非 VR)
- 目标文件:
ui/LUI/lui_function_properties.py::_draw_component_properties - 当前规模:
1441行 - 验收目标:
- 按“变换/布局/视觉/交互/脚本”拆分为多个子绘制函数
- 主流程压缩并保持属性面板行为一致
N2 LUI 缩放链路 拆分(高优先级,非 VR)
- 目标文件:
ui/LUI/lui_manager_interaction.py::_handle_resize_drag - 当前规模:
257行 - 验收目标:
- 入口流程收敛到
<= 120行 - 保持缩放手柄行为与边界语义一致
- 入口流程收敛到
验收标准(阶段)
- 不安装 PyQt/PySide 时,
python main.py可进入编辑器主界面。 - 非 VR 主流程(导入/选择/变换/保存/加载)无 Qt 残余异常。
- 每轮重构后可通过最小回归(启动、导入、播放动画、保存加载)。
关联文档
- 优化分析:
PROJECT_OPTIMIZATION_ANALYSIS.md - 模块索引:
PROJECT_MODULE_INDEX.md - 全量目录:
PROJECT_FULL_CATALOG.md - 历史分析:
IMGUI_MODULE_ANALYSIS.md