-
Notifications
You must be signed in to change notification settings - Fork 0
/
setting.py
106 lines (97 loc) · 5 KB
/
setting.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# coding:utf-8
from PyQt5.QtWidgets import QWidget
from qfluentwidgets import FluentIcon as FIF
from ui.setting_ui import Ui_setting
from qfluentwidgets import isDarkTheme, setTheme, Theme, MessageBox
from PyQt5.QtGui import QColor
from script import Tools
import os
import shutil
from script import OperationConfig, Call, ConfigPath
from tools import InfoBar, FileOperation
# 导入模块
# Setting UI 类
class Setting(Ui_setting, QWidget):
def __init__(self, parent=None):
super().__init__(parent=parent)
self.setupUi(self)
# 初始化图标控件
self.Theme_Icon.setIcon(FIF.PALETTE)
self.Fix_Icon.setIcon(FIF.DEVELOPER_TOOLS)
self.About_Icon.setIcon(FIF.HELP)
# 初始化按钮图标
self.AboutAuthor_Button.setIcon(FIF.GITHUB)
self.AboutSponsor_Button.setIcon(FIF.LINK)
self.AboutFeedback_Button.setIcon(FIF.FEEDBACK)
# 初始化下拉列表控件
self.ThemeNight_Button.checkedChanged.connect(lambda: self.SetDarKTheme())
self.ThemeBg_Button.clicked.connect(lambda: self.SetBackgroundImage())
self.FixGamePath_Button.clicked.connect(lambda: self.FixGetGamePath())
def SetDarKTheme(self):
if self.ThemeNight_Button.text == "关":
if isDarkTheme():
setTheme(Theme.LIGHT)
self.Theme_Label.setTextColor(QColor(0, 0, 0))
self.ThemeBg_Label.setTextColor(QColor(0, 0, 0))
self.ThemeNight_Label.setTextColor(QColor(0, 0, 0))
self.Fix_Label.setTextColor(QColor(0, 0, 0))
self.FixGamePath_Label.setTextColor(QColor(0, 0, 0))
self.FixSDK_Label.setTextColor(QColor(0, 0, 0))
self.About_Label.setTextColor(QColor(0, 0, 0))
self.AboutUpdate_Label.setTextColor(QColor(0, 0, 0))
self.AboutFeedback_Label.setTextColor(QColor(0, 0, 0))
self.AboutAuthor_Label.setTextColor(QColor(0, 0, 0))
self.AboutSponsor_Label.setTextColor(QColor(0, 0, 0))
self.update()
InfoBar.Success(self, "切换成功", "现在已经是亮色模式了")
else:
if not isDarkTheme():
setTheme(Theme.DARK)
self.Theme_Label.setTextColor(QColor(255, 255, 255))
self.ThemeBg_Label.setTextColor(QColor(255, 255, 255))
self.ThemeNight_Label.setTextColor(QColor(255, 255, 255))
self.Fix_Label.setTextColor(QColor(255, 255, 255))
self.FixGamePath_Label.setTextColor(QColor(255, 255, 255))
self.FixSDK_Label.setTextColor(QColor(255, 255, 255))
self.About_Label.setTextColor(QColor(255, 255, 255))
self.AboutUpdate_Label.setTextColor(QColor(255, 255, 255))
self.AboutFeedback_Label.setTextColor(QColor(255, 255, 255))
self.AboutAuthor_Label.setTextColor(QColor(255, 255, 255))
self.AboutSponsor_Label.setTextColor(QColor(255, 255, 255))
self.update()
InfoBar.Success(self, "切换成功", "现在已经是暗色模式了")
def SetBackgroundImage(self):
new_file = Tools.SelectFile("请选择背景图片", "PNG Files|*.png;*.jpg;*.jpeg")
if new_file:
shutil.copyfile(new_file, "./rescourse/tmp.png")
os.remove("./rescourse/background.png")
os.rename("./rescourse/tmp.png", "./rescourse/background.png")
InfoBar.Success(self, "更换成成", "背景图片更换成功")
else:
InfoBar.Warnning(self, "更换失败", "背景图片更换失败,你是不是不想换背景图片了?")
def FixSDK(self):
if os.path.exists("./rescourse/PCGameSDK.dll"):
GamePath = OperationConfig.GetGamePath(self)
shutil.copyfile(
"./rescourse/PCGameSDK.dll",
GamePath + "\\YuanShen_Data\\Plugins\\tmp.dll",
)
if os.path.exists(GamePath + "\\YuanShen_Data\\Plugins\\PCGameSDK.dll"):
os.remove(GamePath + "\\YuanShen_Data\\Plugins\\PCGameSDK.dll")
os.rename(
GamePath + "\\YuanShen_Data\\Plugins\\tmp.dll",
GamePath + "\\YuanShen_Data\\Plugins\\PCGameSDK.dll",
)
InfoBar.Success(self, "修复成功", "PCGameSDK.dll 补丁已打入")
else:
InfoBar.Warnning(self, "修复失败", "修复包损坏,是不是误删了什么东西?")
def FixGetGamePath(self):
GamePath = Tools.SelectFile("YuanShen.exe", "EXE Files |YuanShen.exe|")
GamePath = GamePath[: GamePath.rfind("\\")]
if not GamePath:
InfoBar.Warnning(self, "更新游戏位置失败", "用户操作取消")
Config = FileOperation.ReadJSon(ConfigPath)
Config["Path"]["gamePath"] = GamePath
FileOperation.WriteJson(ConfigPath, Config)
if os.path.exists(GamePath):
InfoBar.Success(self, "更新游戏位置成功", "现在就可以原神启动啦")