mirror of
https://github.com/hyb-oyqq/FRAISEMOE-Addons-Installer-NEXT.git
synced 2026-04-05 20:46:32 +00:00
feat(core): 优化主窗口信号连接和状态管理
- 更新主窗口信号连接,使用私有方法处理关闭和最小化按钮点击事件,增强代码可读性。 - 根据离线模式和配置状态统一管理开始安装按钮的状态,简化逻辑。 - 增强日志记录,确保在用户操作时提供详细的调试信息,便于后续排查和用户反馈。 - 优化卸载处理程序的日志记录,提升用户体验和系统稳定性。
This commit is contained in:
@@ -794,7 +794,6 @@ class DownloadManager:
|
||||
logger.info(f"DEBUG: 成功复制并验证补丁文件 {_7z_path}")
|
||||
# 直接进入解压阶段
|
||||
self.extraction_handler.start_extraction(_7z_path, game_folder, plugin_path, game_version)
|
||||
self.main_window.extraction_handler.extraction_finished.connect(self.on_extraction_finished)
|
||||
else:
|
||||
if debug_mode:
|
||||
logger.warning(f"DEBUG: 补丁文件哈希验证失败")
|
||||
@@ -910,7 +909,6 @@ class DownloadManager:
|
||||
|
||||
# 直接进入解压阶段
|
||||
self.extraction_handler.start_extraction(_7z_path, game_folder, plugin_path, game_version)
|
||||
self.main_window.extraction_handler.extraction_finished.connect(self.on_extraction_finished)
|
||||
|
||||
def on_extraction_finished(self, continue_download):
|
||||
"""解压完成后的回调,决定是否继续下载队列
|
||||
|
||||
@@ -5,6 +5,7 @@ from PySide6.QtGui import QFont
|
||||
|
||||
from config.config import DOWNLOAD_THREADS
|
||||
from workers.download import DownloadThread
|
||||
from utils.logger import setup_logger
|
||||
|
||||
|
||||
class DownloadTaskManager:
|
||||
@@ -53,7 +54,7 @@ class DownloadTaskManager:
|
||||
self.main_window.progress_window.stop_button.clicked.connect(self.main_window.download_manager.on_download_stopped)
|
||||
|
||||
# 连接暂停/恢复按钮
|
||||
self.main_window.progress_window.pause_resume_button.clicked.connect(self.toggle_download_pause)
|
||||
self.main_window.progress_window.pause_resume_button.clicked.connect(self._on_pause_resume_clicked)
|
||||
|
||||
# 启动线程和显示进度窗口
|
||||
self.current_download_thread.start()
|
||||
@@ -61,6 +62,8 @@ class DownloadTaskManager:
|
||||
|
||||
def toggle_download_pause(self):
|
||||
"""切换下载的暂停/恢复状态"""
|
||||
logger = setup_logger("download_task_manager")
|
||||
logger.debug("执行暂停/恢复下载操作")
|
||||
if not self.current_download_thread:
|
||||
return
|
||||
|
||||
@@ -112,6 +115,8 @@ class DownloadTaskManager:
|
||||
|
||||
def show_download_thread_settings(self):
|
||||
"""显示下载线程设置对话框"""
|
||||
logger = setup_logger("download_task_manager")
|
||||
logger.info("用户打开下载线程数设置对话框")
|
||||
# 创建对话框
|
||||
dialog = QDialog(self.main_window)
|
||||
dialog.setWindowTitle(f"下载线程设置 - {self.APP_NAME}")
|
||||
@@ -179,6 +184,7 @@ class DownloadTaskManager:
|
||||
break
|
||||
|
||||
if selected_level:
|
||||
old_level = self.download_thread_level
|
||||
# 为极速和狂暴模式显示警告
|
||||
if selected_level in ["extreme", "insane"]:
|
||||
warning_result = QtWidgets.QMessageBox.warning(
|
||||
@@ -194,6 +200,9 @@ class DownloadTaskManager:
|
||||
|
||||
success = self.set_download_thread_level(selected_level)
|
||||
|
||||
logger.info(f"用户修改下载线程数设置: {old_level} -> {selected_level}")
|
||||
logger.debug(f"对应线程数: {DOWNLOAD_THREADS[old_level]} -> {DOWNLOAD_THREADS[selected_level]}")
|
||||
|
||||
if success:
|
||||
# 显示设置成功消息
|
||||
thread_count = DOWNLOAD_THREADS[selected_level]
|
||||
@@ -215,8 +224,19 @@ class DownloadTaskManager:
|
||||
|
||||
def stop_download(self):
|
||||
"""停止当前下载线程"""
|
||||
logger = setup_logger("download_task_manager")
|
||||
logger.info("用户点击停止下载按钮")
|
||||
if self.current_download_thread and self.current_download_thread.isRunning():
|
||||
self.current_download_thread.stop()
|
||||
self.current_download_thread.wait() # 等待线程完全终止
|
||||
return True
|
||||
return False
|
||||
return False
|
||||
|
||||
def _on_pause_resume_clicked(self):
|
||||
"""处理暂停/恢复按钮点击"""
|
||||
logger = setup_logger("download_task_manager")
|
||||
logger.info("用户点击暂停/恢复下载按钮")
|
||||
self.toggle_download_pause()
|
||||
|
||||
def toggle_download_pause(self):
|
||||
"""切换下载暂停/恢复状态"""
|
||||
@@ -9,6 +9,7 @@ import traceback
|
||||
from utils import load_base64_image, msgbox_frame, resource_path
|
||||
from config.config import APP_NAME, APP_VERSION, LOG_FILE
|
||||
from core.managers.ipv6_manager import IPv6Manager # 导入新的IPv6Manager类
|
||||
from workers.download import ProgressWindow
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -1025,6 +1026,11 @@ class UIManager:
|
||||
Returns:
|
||||
QDialog: 配置好的进度窗口实例.
|
||||
"""
|
||||
# 如果是下载进度窗口,使用专用的ProgressWindow类
|
||||
if "下载" in title:
|
||||
return ProgressWindow(self.main_window)
|
||||
|
||||
# 其他情况使用基本的进度窗口
|
||||
progress_window = QDialog(self.main_window)
|
||||
progress_window.setWindowTitle(f"{title} - {APP_NAME}")
|
||||
progress_window.setFixedSize(400, 150)
|
||||
|
||||
Reference in New Issue
Block a user