mirror of
https://github.com/hyb-oyqq/FRAISEMOE-Addons-Installer-NEXT.git
synced 2025-12-20 22:08:36 +00:00
feat(core): 优化主窗口和管理器功能
- 在主窗口中重构初始化逻辑,增强UI组件的管理和信号连接,提升代码可读性。 - 添加资源验证和加载测试功能,确保关键资源文件的完整性和可用性。 - 更新下载管理器和离线模式管理器,优化线程管理和状态更新,提升用户体验。 - 增强日志记录,确保在关键操作中提供详细的调试信息,便于后续排查和用户反馈。 - 删除不再使用的进度窗口创建函数,改为由UIManager管理,提升代码整洁性。
This commit is contained in:
@@ -23,7 +23,58 @@ class WindowManager:
|
||||
|
||||
# 设置圆角窗口
|
||||
self.setRoundedCorners()
|
||||
|
||||
|
||||
# 初始化状态管理
|
||||
self._setup_window_state()
|
||||
|
||||
def _setup_window_state(self):
|
||||
"""初始化窗口状态管理."""
|
||||
self.STATE_INITIALIZING = "initializing"
|
||||
self.STATE_READY = "ready"
|
||||
self.STATE_DOWNLOADING = "downloading"
|
||||
self.STATE_EXTRACTING = "extracting"
|
||||
self.STATE_VERIFYING = "verifying"
|
||||
self.STATE_INSTALLING = "installing"
|
||||
self.STATE_COMPLETED = "completed"
|
||||
self.STATE_ERROR = "error"
|
||||
|
||||
self.current_state = self.STATE_INITIALIZING
|
||||
|
||||
def change_window_state(self, new_state, error_message=None):
|
||||
"""更改窗口状态并更新UI.
|
||||
|
||||
Args:
|
||||
new_state (str): 新的状态.
|
||||
error_message (str, optional): 错误信息. Defaults to None.
|
||||
"""
|
||||
if new_state == self.current_state:
|
||||
return
|
||||
|
||||
self.current_state = new_state
|
||||
self._update_ui_for_state(new_state, error_message)
|
||||
|
||||
def _update_ui_for_state(self, state, error_message=None):
|
||||
"""根据当前状态更新UI组件."""
|
||||
is_offline = self.window.offline_mode_manager.is_in_offline_mode()
|
||||
config_valid = self.window.config_valid
|
||||
|
||||
button_enabled = False
|
||||
button_text = "!无法安装!"
|
||||
|
||||
if state == self.STATE_READY:
|
||||
if is_offline or config_valid:
|
||||
button_enabled = True
|
||||
button_text = "开始安装"
|
||||
elif state in [self.STATE_DOWNLOADING, self.STATE_EXTRACTING, self.STATE_VERIFYING, self.STATE_INSTALLING]:
|
||||
button_text = "正在安装"
|
||||
elif state == self.STATE_COMPLETED:
|
||||
button_enabled = True
|
||||
button_text = "安装完成" # Or back to "开始安装"
|
||||
|
||||
self.window.ui.start_install_btn.setEnabled(button_enabled)
|
||||
self.window.ui.start_install_text.setText(button_text)
|
||||
self.window.install_button_enabled = button_enabled
|
||||
|
||||
def setRoundedCorners(self):
|
||||
"""设置窗口圆角"""
|
||||
# 实现圆角窗口
|
||||
|
||||
Reference in New Issue
Block a user