Skip to content

refactor(phase-3-2): split UI large files (theme_optimizer + home_page)#61

Merged
Agions merged 4 commits into
mainfrom
refactor/phase-3-ui-large-files
Jun 2, 2026
Merged

refactor(phase-3-2): split UI large files (theme_optimizer + home_page)#61
Agions merged 4 commits into
mainfrom
refactor/phase-3-ui-large-files

Conversation

@Agions
Copy link
Copy Markdown
Owner

@Agions Agions commented Jun 2, 2026

Summary

Phase 3 余项 UI 大文件拆分 (2/7 完成):

  • theme_optimizer.py (503) → 4 文件包
  • home_page.py (548) → 3 文件

拆分详情

ui/theme/theme_optimizer.py (503) → 4 文件包

ui/theme/theme_optimizer/
├── __init__.py (21)      # 重导出 4 个公共符号
├── _presets.py (236)     # ThemePresets (DARK/LIGHT 主题配色)
├── _selector.py (89)     # ThemePresetSelector UI
├── _preview.py (51)      # ThemeColorPreview UI
└── _styles.py (143)      # generate_theme_stylesheet 函数

ui/main/pages/home_page.py (548) → 3 文件

ui/main/pages/
├── home_page.py (273)    # HomePage 主类
├── _cards.py (279)       # GlassCard/QuickCard/ProjectCard/StatChip
└── _empty_state.py (71)  # EmptyStateCard

兼容性

  • 旧 import 路径通过 __init__.py 重导出保持工作
  • from .theme_optimizer import ThemePresets 仍可用
  • from .home_page import HomePage 仍可用

Verification

  • ruff check . All checks passed
  • pytest tests/ 351 passed, 20 skipped
  • 6 个 home_page class 完美分布 (1+4+1)
  • F821 修复(_selector.py 添加 ThemePresets import)

剩余 Phase 3

未拆分 5 个 UI 大文件(需 PySide6 环境验证,建议后续 PR):

  • main_window.py (662) — 8 类紧密耦合
  • export_panel.py (674)
  • monitor_panel.py (643)
  • step_group.py (612)
  • export_monitor.py (519)

@Agions Agions mentioned this pull request Jun 2, 2026
4 tasks
Agions added 4 commits June 2, 2026 17:01
拆分方案:
- _presets.py (236): ThemePresets 类 (DARK/LIGHT 主题配色)
- _selector.py (89):  ThemePresetSelector UI (主题选择器)
- _preview.py (51):  ThemeColorPreview UI (颜色预览)
- _styles.py (143):  generate_theme_stylesheet (样式表生成)
- __init__.py (21): 重导出 4 个公共符号

兼容:
- from scenefab.ui.theme.theme_optimizer import X 仍工作 (通过 __init__.py)
- 现有 1 个引用点 (theme_toggle.py) 不需修改

验证:
- ruff check all green
- pytest 351 passed, 20 skipped
- F821 修复: _selector.py 添加 ThemePresets import
拆分 home_page.py (548 行) 为:
- home_page.py (273): HomePage 主类
- _cards.py (279): 4 个卡片类 (GlassCard/QuickCard/ProjectCard/StatChip)
- _empty_state.py (71): EmptyStateCard

验证:
- 6 个 class 完美分布 (1+4+1)
- ruff check all green
- pytest 351 passed, 20 skipped
- 兼容: from .home_page import HomePage 仍工作
…ilders

step_group.py (612) → 2 文件:
- step_group.py (313): StepGroup 主类
- _group_card.py (362): GroupCard 卡片

export_panel.py (675) → 减少 191 行:
- 提取 4 个 _create_*_tab 方法到 _tab_builders.py
- 现在 export_panel.py = 484 行 (从 675)

export_monitor.py (519) → 4 文件:
- export_monitor.py (45): 重导出
- _progress_widget.py (206): ExportProgressWidget
- _monitor_widget.py (237): ExportMonitorWidget
- _progress_dialog.py (165): ExportProgressDialog

修复:
- _monitor_widget.py 引用 ExportProgressWidget → 加 import
- _progress_dialog.py 引用 ExportMonitorWidget → 加 import
- ruff --fix 自动修 isort

验证:
- ruff check all green
- pytest 351 passed, 20 skipped
- 5/7 大文件拆分完成 (theme_optimizer/home_page/step_group/export_panel/export_monitor)
- 剩余: main_window.py(662) + monitor_panel.py(643) 需 PySide6 验证
@Agions Agions force-pushed the refactor/phase-3-ui-large-files branch from a4803da to ecc4786 Compare June 2, 2026 09:05
@Agions Agions merged commit bc7c526 into main Jun 2, 2026
2 checks passed
@Agions Agions deleted the refactor/phase-3-ui-large-files branch June 2, 2026 09:05
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