feat(core): 添加下载线程设置功能

- 在下载管理器中引入下载线程级别设置,支持用户自定义线程数
- 在主菜单中添加下载设置子菜单,包含修改下载源和下载线程设置选项
- 优化下载流程,动态调整下载线程数以提高下载效率
- 在动画过程中禁用相关按钮,确保用户体验流畅
- 更新配置文件,增加下载线程档位设置
This commit is contained in:
hyb-oyqq
2025-08-01 16:34:30 +08:00
parent a93991ca9d
commit 5c06802f65
6 changed files with 221 additions and 12 deletions

View File

@@ -1,5 +1,6 @@
import os
import sys
import subprocess
import shutil
import json
import webbrowser
@@ -13,7 +14,8 @@ from PySide6.QtGui import QAction # Added for menu actions
from ui.Ui_install import Ui_MainWindows
from data.config import (
APP_NAME, PLUGIN, GAME_INFO, BLOCK_SIZE,
PLUGIN_HASH, UA, CONFIG_URL, LOG_FILE
PLUGIN_HASH, UA, CONFIG_URL, LOG_FILE,
DOWNLOAD_THREADS, DEFAULT_DOWNLOAD_THREAD_LEVEL # 添加下载线程常量
)
from utils import (
load_config, save_config, HashManager, AdminPrivileges, msgbox_frame, load_image_from_file
@@ -72,6 +74,10 @@ class MainWindow(QMainWindow):
# 初始化下载管理器 - 应该放在其他管理器之后,因为它可能依赖于它们
self.download_manager = DownloadManager(self)
# 加载用户下载线程设置
if "download_thread_level" in self.config and self.config["download_thread_level"] in DOWNLOAD_THREADS:
self.download_manager.download_thread_level = self.config["download_thread_level"]
# 初始化状态变量
self.cloud_config = None
self.config_valid = False # 添加配置有效标志
@@ -159,6 +165,11 @@ class MainWindow(QMainWindow):
"""动画完成后启用按钮"""
self.animation_in_progress = False
# 启用所有菜单按钮
self.ui.start_install_btn.setEnabled(True)
self.ui.uninstall_btn.setEnabled(True)
self.ui.exit_btn.setEnabled(True)
# 只有在配置有效时才启用开始安装按钮
if self.config_valid:
self.set_start_button_enabled(True)
@@ -246,12 +257,13 @@ class MainWindow(QMainWindow):
Args:
url: 下载URL
_7z_path: 7z文件保存路径
game_version: 游戏版本
game_version: 游戏版本名称
Returns:
DownloadThread: 下载线程实例
"""
return DownloadThread(url, _7z_path, game_version, self)
from workers import DownloadThread
return DownloadThread(url, _7z_path, game_version, parent=self)
def create_progress_window(self):
"""创建下载进度窗口