add lot of things
This commit is contained in:
@@ -6,6 +6,7 @@ from PyQt5.QtGui import QPixmap, QFont
|
||||
from qfluentwidgets import (InfoBar, InfoBarPosition, TitleLabel, SubtitleLabel,
|
||||
PrimaryPushButton, PushButton, ScrollArea, CardWidget,
|
||||
FluentIcon, SimpleCardWidget, BodyLabel)
|
||||
from loguru import logger
|
||||
import json
|
||||
import os
|
||||
import requests
|
||||
@@ -15,7 +16,10 @@ import subprocess
|
||||
import platform
|
||||
|
||||
def show_error_dialog(title, message):
|
||||
"""显示错误弹窗,模拟Sweet Alert风格"""
|
||||
"""显示错误弹窗,模拟Sweet Alert风格并记录日志"""
|
||||
# 记录错误日志
|
||||
logger.error(f"{title}: {message}")
|
||||
|
||||
# 创建错误消息框
|
||||
msg_box = QMessageBox()
|
||||
msg_box.setIcon(QMessageBox.Critical)
|
||||
@@ -388,7 +392,7 @@ class AppDetailWindow(QMainWindow):
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
/* color: white; */
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
#StatsCard QLabel {
|
||||
/* color: white; */
|
||||
@@ -444,7 +448,7 @@ class AppDetailWindow(QMainWindow):
|
||||
#InfoCard {
|
||||
background-color: white;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
|
||||
border: 1px solid rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
""")
|
||||
|
||||
@@ -531,7 +535,7 @@ class AppDetailWindow(QMainWindow):
|
||||
#DescriptionCard {
|
||||
background-color: white;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
|
||||
border: 1px solid rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
""")
|
||||
|
||||
@@ -640,7 +644,7 @@ class AppDetailWindow(QMainWindow):
|
||||
#ButtonCard {
|
||||
background-color: white;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
|
||||
border: 1px solid rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
""")
|
||||
|
||||
@@ -669,9 +673,14 @@ class AppDetailWindow(QMainWindow):
|
||||
from qfluentwidgets import InfoBar, MessageBox
|
||||
from PyQt5.QtWidgets import QProgressDialog
|
||||
from leonapp_gui import get_global_settings
|
||||
from loguru import logger
|
||||
|
||||
app_name = self.app_data.get('name', '未知应用') if hasattr(self, 'app_data') else '未知应用'
|
||||
logger.info(f"用户开始安装应用,应用名称: {app_name}")
|
||||
|
||||
# 检查是否有应用数据
|
||||
if not hasattr(self, 'app_data'):
|
||||
logger.error("应用安装失败:应用数据未加载")
|
||||
show_error_dialog("错误", "应用数据未加载,请刷新页面后重试。")
|
||||
return
|
||||
|
||||
@@ -735,9 +744,12 @@ class AppDetailWindow(QMainWindow):
|
||||
|
||||
# 4. 如果仍然没有下载链接,显示错误信息
|
||||
if not download_url:
|
||||
logger.error(f"应用安装失败:无法获取{app_name}的下载链接")
|
||||
show_error_dialog("错误", "无法获取应用的下载链接,请稍后重试。\n可能原因:API返回数据中缺少下载链接字段。")
|
||||
return
|
||||
|
||||
logger.info(f"成功获取{app_name}的下载链接: {download_url}")
|
||||
|
||||
# 5. 更健壮的URL处理逻辑
|
||||
from urllib.parse import urlparse, quote
|
||||
import os
|
||||
@@ -829,6 +841,11 @@ class AppDetailWindow(QMainWindow):
|
||||
|
||||
def on_download_finished(self, file_path):
|
||||
"""下载完成处理"""
|
||||
from loguru import logger
|
||||
|
||||
app_name = self.app_data.get('name', '未知应用') if hasattr(self, 'app_data') else '未知应用'
|
||||
logger.info(f"应用{app_name}下载完成,保存位置: {file_path}")
|
||||
|
||||
self.progress_dialog.accept()
|
||||
|
||||
# 确保subprocess模块可用
|
||||
@@ -942,6 +959,11 @@ class AppDetailWindow(QMainWindow):
|
||||
|
||||
def on_download_error(self, error_msg):
|
||||
"""下载错误处理"""
|
||||
from loguru import logger
|
||||
|
||||
app_name = self.app_data.get('name', '未知应用') if hasattr(self, 'app_data') else '未知应用'
|
||||
logger.error(f"应用{app_name}下载失败: {error_msg}")
|
||||
|
||||
self.progress_dialog.reject()
|
||||
|
||||
# 使用Sweet Alert风格弹窗显示错误
|
||||
@@ -993,7 +1015,7 @@ class AppDetailWindow(QMainWindow):
|
||||
self.copy_to_clipboard(app_share_url)
|
||||
|
||||
def copy_to_clipboard(self, text):
|
||||
"""复制文本到剪贴板"""
|
||||
# 复制文本到剪贴板
|
||||
from qfluentwidgets import InfoBar
|
||||
clipboard = QApplication.clipboard()
|
||||
clipboard.setText(text)
|
||||
@@ -1008,6 +1030,6 @@ class AppDetailWindow(QMainWindow):
|
||||
)
|
||||
|
||||
def closeEvent(self, event):
|
||||
"""关闭窗口事件"""
|
||||
# 关闭窗口事件
|
||||
# 如果需要在关闭时执行清理操作,可以在这里添加
|
||||
event.accept()
|
||||
Reference in New Issue
Block a user