feat(core): 优化主窗口和UI管理功能

- 移除不再使用的UI组件,简化主窗口代码结构。
- 更新按钮状态管理,统一通过UIManager控制安装按钮状态,提升代码可读性。
- 优化解压和下载管理逻辑,确保在操作过程中提供清晰的用户反馈。
- 增强日志记录,确保在关键操作中提供详细的调试信息,便于后续排查和用户反馈。
This commit is contained in:
hyb-oyqq
2025-08-12 17:11:09 +08:00
parent 2c91319d5f
commit 4f2217ca95
10 changed files with 159 additions and 128 deletions

View File

@@ -977,9 +977,8 @@ class UIManager:
self.main_window.config["offline_mode"] = True
self.main_window.save_config(self.main_window.config)
# 在离线模式下始终启用开始安装按钮
if hasattr(self.main_window, 'set_start_button_enabled'):
self.main_window.set_start_button_enabled(True)
# 在离线模式下启用开始安装按钮
self.set_install_button_state("ready")
# 清除版本警告标志
if hasattr(self.main_window, 'version_warning'):
@@ -1073,4 +1072,34 @@ class UIManager:
"""隐藏并销毁加载对话框."""
if self.loading_dialog:
self.loading_dialog.hide()
self.loading_dialog = None
self.loading_dialog = None
def set_install_button_state(self, state):
"""统一的安装按钮状态管理方法
Args:
state (str): 按钮状态 - "ready", "installing", "disabled", "completed"
"""
if hasattr(self.main_window, 'window_manager'):
if state == "ready":
self.main_window.window_manager.change_window_state(self.main_window.window_manager.STATE_READY)
elif state == "installing":
self.main_window.window_manager.change_window_state(self.main_window.window_manager.STATE_INSTALLING)
elif state == "disabled":
self.main_window.window_manager.change_window_state(self.main_window.window_manager.STATE_ERROR)
elif state == "completed":
self.main_window.window_manager.change_window_state(self.main_window.window_manager.STATE_COMPLETED)
else:
# 降级处理,直接设置按钮状态
if state == "ready":
self.main_window.ui.start_install_btn.setEnabled(True)
self.main_window.ui.start_install_text.setText("开始安装")
elif state == "installing":
self.main_window.ui.start_install_btn.setEnabled(False)
self.main_window.ui.start_install_text.setText("正在安装")
elif state == "disabled":
self.main_window.ui.start_install_btn.setEnabled(False)
self.main_window.ui.start_install_text.setText("!无法安装!")
elif state == "completed":
self.main_window.ui.start_install_btn.setEnabled(True)
self.main_window.ui.start_install_text.setText("安装完成")