Settings improvements
This commit is contained in:
parent
afb74d4bad
commit
c0881261a0
|
@ -25,13 +25,13 @@ class GameSettings(QWidget):
|
|||
self.offline = QComboBox()
|
||||
self.offline.addItems(["unset", "true", "false"])
|
||||
self.offline_widget = SettingsWidget(self.tr("Launch Game offline"), self.offline)
|
||||
self.offline.currentIndexChanged.connect(self.update_offline)
|
||||
self.offline.currentIndexChanged.connect(lambda x: self.update_combobox(x, "offline"))
|
||||
|
||||
self.skip_update = QComboBox()
|
||||
self.skip_update.addItems(["unset", "true", "false"])
|
||||
self.skip_update_widget = SettingsWidget(self.tr("Skip update check before launching"), self.skip_update)
|
||||
self.layout.addWidget(self.skip_update_widget)
|
||||
self.skip_update.currentIndexChanged.connect(self.update_skip_update)
|
||||
self.skip_update.currentIndexChanged.connect(lambda x: self.update_combobox(x, "skip_update_check"))
|
||||
|
||||
self.layout.addWidget(self.offline_widget)
|
||||
|
||||
|
@ -86,38 +86,21 @@ class GameSettings(QWidget):
|
|||
self.core.lgd.config.remove_section(self.game.app_name)
|
||||
self.core.lgd.save_config()
|
||||
|
||||
def update_offline(self, i):
|
||||
def update_combobox(self, i, option):
|
||||
if self.change:
|
||||
# remove section
|
||||
if i == 0:
|
||||
if self.game.app_name in self.core.lgd.config.sections():
|
||||
if self.core.lgd.config.get(f"{self.game.app_name}", "offline", fallback="") != "":
|
||||
self.core.lgd.config.remove_option(self.game.app_name, "offline")
|
||||
if self.core.lgd.config.get(f"{self.game.app_name}", option, fallback="") != "":
|
||||
self.core.lgd.config.remove_option(self.game.app_name, option)
|
||||
if self.core.lgd.config[self.game.app_name] == {}:
|
||||
self.core.lgd.config.remove_section(self.game.app_name)
|
||||
elif i == 1:
|
||||
self.core.lgd.config[self.game.app_name] = {}
|
||||
self.core.lgd.config.set(self.game.app_name, "offline", "true")
|
||||
self.core.lgd.config.set(self.game.app_name, option, "true")
|
||||
elif i == 2:
|
||||
self.core.lgd.config[self.game.app_name] = {}
|
||||
self.core.lgd.config.set(self.game.app_name, "offline", "false")
|
||||
self.core.lgd.save_config()
|
||||
|
||||
def update_skip_update(self, i):
|
||||
if self.change:
|
||||
# remove section
|
||||
if i == 0:
|
||||
if self.game.app_name in self.core.lgd.config.sections():
|
||||
if self.core.lgd.config.get(f"{self.game.app_name}", "skip_update_check", fallback="") != "":
|
||||
self.core.lgd.config.remove_option(self.game.app_name, "skip_update_check")
|
||||
if self.core.lgd.config[self.game.app_name] == {}:
|
||||
self.core.lgd.config.remove_section(self.game.app_name)
|
||||
elif i == 1:
|
||||
self.core.lgd.config[self.game.app_name] = {}
|
||||
self.core.lgd.config.set(self.game.app_name, "skip_update_check", "true")
|
||||
elif i == 2:
|
||||
self.core.lgd.config[self.game.app_name] = {}
|
||||
self.core.lgd.config.set(self.game.app_name, "skip_update_check", "false")
|
||||
self.core.lgd.config.set(self.game.app_name, option, "false")
|
||||
self.core.lgd.save_config()
|
||||
|
||||
def change_proton(self, i):
|
||||
|
@ -157,7 +140,7 @@ class GameSettings(QWidget):
|
|||
self.linux_settings.select_wine_exec.setText("")
|
||||
self.linux_settings.save_wineexec()
|
||||
self.linux_settings.select_path.text_edit.setText("")
|
||||
self.linux_settings.save_wineprefix()
|
||||
self.linux_settings.save_setting()
|
||||
|
||||
self.core.lgd.save_config()
|
||||
|
||||
|
|
|
@ -14,13 +14,13 @@ class DxvkWidget(QGroupBox):
|
|||
super(DxvkWidget, self).__init__()
|
||||
self.core = core
|
||||
self.dxvk_settings = {
|
||||
"fps": (False, "Fps"),
|
||||
"gpuload": (False, self.tr("GPU usage")),
|
||||
"memory": (False, self.tr("Used Memory")),
|
||||
"devinfo": (False, self.tr("Device info")),
|
||||
"version": (False, self.tr("DXVK version")),
|
||||
"api": (False, self.tr("D3D Level of application")),
|
||||
"frametime": (False, self.tr("Frame time graph"))
|
||||
"fps": [False, "Fps"],
|
||||
"gpuload": [False, self.tr("GPU usage")],
|
||||
"memory": [False, self.tr("Used Memory")],
|
||||
"devinfo": [False, self.tr("Device info")],
|
||||
"version": [False, self.tr("DXVK version")],
|
||||
"api": [False, self.tr("D3D Level of application")],
|
||||
"frametime": [False, self.tr("Frame time graph")]
|
||||
}
|
||||
self.name = "default"
|
||||
self.layout = QVBoxLayout()
|
||||
|
@ -34,9 +34,7 @@ class DxvkWidget(QGroupBox):
|
|||
self.more_settings.setDisabled(not dxvk_hud == "")
|
||||
if dxvk_hud:
|
||||
for s in dxvk_hud.split(","):
|
||||
y = list(self.dxvk_settings[s])
|
||||
y[0] = True
|
||||
self.dxvk_settings[s] = tuple(y)
|
||||
self.dxvk_settings[s][0] = True
|
||||
|
||||
self.more_settings.setPopupMode(QToolButton.InstantPopup)
|
||||
self.more_settings.setMenu(QMenu())
|
||||
|
@ -63,9 +61,7 @@ class DxvkWidget(QGroupBox):
|
|||
if dxvk_hud:
|
||||
self.more_settings.setDisabled(False)
|
||||
for s in dxvk_hud.split(","):
|
||||
y = list(self.dxvk_settings[s])
|
||||
y[0] = True
|
||||
self.dxvk_settings[s] = tuple(y)
|
||||
self.dxvk_settings[s][0] = True
|
||||
else:
|
||||
self.show_dxvk.setChecked(False)
|
||||
self.more_settings.setDisabled(True)
|
||||
|
@ -79,9 +75,7 @@ class DxvkWidget(QGroupBox):
|
|||
|
||||
for i in self.more_settings_widget.settings:
|
||||
if i in ["fps", "gpuload"]:
|
||||
lst = list(self.more_settings_widget.settings[i])
|
||||
lst[0] = True
|
||||
self.more_settings_widget.settings[i] = tuple(lst)
|
||||
self.more_settings_widget.settings[i][0] = True
|
||||
|
||||
self.core.lgd.config[f"{self.name}.env"]["DXVK_HUD"] = "fps,gpuload"
|
||||
for w in self.more_settings_widget.widgets:
|
||||
|
@ -101,6 +95,7 @@ class DxvkWidget(QGroupBox):
|
|||
|
||||
class DxvkMoreSettingsWidget(QWidget):
|
||||
show_dxvk = pyqtSignal(bool)
|
||||
|
||||
def __init__(self, settings: dict, core: LegendaryCore):
|
||||
super(DxvkMoreSettingsWidget, self).__init__()
|
||||
self.layout = QVBoxLayout()
|
||||
|
@ -116,11 +111,9 @@ class DxvkMoreSettingsWidget(QWidget):
|
|||
|
||||
self.setLayout(self.layout)
|
||||
|
||||
def change(self, signal: tuple):
|
||||
def change(self, signal: list):
|
||||
tag, checked = signal
|
||||
y = list(self.settings[tag])
|
||||
y[0] = checked
|
||||
self.settings[tag] = tuple(y)
|
||||
self.settings[tag][0] = checked
|
||||
|
||||
sett = []
|
||||
logger.debug(self.settings)
|
||||
|
@ -128,7 +121,7 @@ class DxvkMoreSettingsWidget(QWidget):
|
|||
check, _ = self.settings[i]
|
||||
if check:
|
||||
sett.append(i)
|
||||
if len(sett) != 0:
|
||||
if len(sett) > 0:
|
||||
self.core.lgd.config.set(f"{self.name}.env", "DXVK_HUD", ",".join(sett))
|
||||
|
||||
else:
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
from logging import getLogger
|
||||
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtGui import QIntValidator
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QFileDialog, QPushButton, QLineEdit, QGroupBox, QMessageBox
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QFileDialog, QPushButton, QLineEdit, QGroupBox, QMessageBox, \
|
||||
QScrollArea
|
||||
|
||||
from rare.components.tabs.settings.settings_widget import SettingsWidget
|
||||
from rare.utils.extra_widgets import PathEdit
|
||||
|
@ -10,15 +12,16 @@ from custom_legendary.core import LegendaryCore
|
|||
logger = getLogger("LegendarySettings")
|
||||
|
||||
|
||||
class LegendarySettings(QGroupBox):
|
||||
class LegendarySettings(QScrollArea):
|
||||
def __init__(self, core: LegendaryCore):
|
||||
super(LegendarySettings, self).__init__()
|
||||
self.setTitle(self.tr("Legendary settings"))
|
||||
self.widget = QGroupBox(self.tr("Legendary settings"))
|
||||
self.setWidgetResizable(True)
|
||||
self.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
|
||||
self.layout = QVBoxLayout()
|
||||
self.core = core
|
||||
#self.title = QLabel("<h2>" + self.tr("Legendary settings") + "</h2>")
|
||||
#self.layout.addWidget(self.title)
|
||||
self.setObjectName("group")
|
||||
|
||||
self.widget.setObjectName("group")
|
||||
# Default installation directory
|
||||
self.select_path = PathEdit(core.get_default_install_dir(), type_of_file=QFileDialog.DirectoryOnly,
|
||||
infotext="Default")
|
||||
|
@ -53,7 +56,8 @@ class LegendarySettings(QGroupBox):
|
|||
self.layout.addWidget(self.cleanup_widget)
|
||||
|
||||
self.layout.addStretch(1)
|
||||
self.setLayout(self.layout)
|
||||
self.widget.setLayout(self.layout)
|
||||
self.setWidget(self.widget)
|
||||
|
||||
def save_path(self):
|
||||
self.core.lgd.config["Legendary"]["install_dir"] = self.select_path.text()
|
||||
|
|
|
@ -24,7 +24,7 @@ class LinuxSettings(QGroupBox):
|
|||
infotext="Default")
|
||||
self.select_path.text_edit.textChanged.connect(lambda t: self.save_path_button.setDisabled(False))
|
||||
self.save_path_button = QPushButton("Save")
|
||||
self.save_path_button.clicked.connect(self.save_wineprefix)
|
||||
self.save_path_button.clicked.connect(lambda: self.save_setting(self.select_path, "wine_prefix"))
|
||||
self.install_dir_widget = SettingsWidget(self.tr("Default Wine Prefix"), self.select_path,
|
||||
self.save_path_button)
|
||||
self.layout.addWidget(self.install_dir_widget)
|
||||
|
@ -32,7 +32,7 @@ class LinuxSettings(QGroupBox):
|
|||
# Wine executable
|
||||
self.select_wine_exec = QLineEdit(self.core.lgd.config.get(self.name, "wine_executable", fallback=""))
|
||||
self.save_wine_exec = QPushButton("Save")
|
||||
self.save_wine_exec.clicked.connect(self.save_wineexec)
|
||||
self.save_wine_exec.clicked.connect(lambda: self.save_setting(self.select_wine_exec, "wine_executable"))
|
||||
self.install_dir_widget = SettingsWidget(self.tr("Default Wine executable"), self.select_wine_exec,
|
||||
self.save_wine_exec)
|
||||
self.layout.addWidget(self.install_dir_widget)
|
||||
|
@ -44,28 +44,15 @@ class LinuxSettings(QGroupBox):
|
|||
self.layout.addStretch(1)
|
||||
self.setLayout(self.layout)
|
||||
|
||||
def save_wineprefix(self):
|
||||
def save_setting(self, widget: QLineEdit, setting_name: str):
|
||||
if not self.name in self.core.lgd.config.sections():
|
||||
self.core.lgd.config[self.name] = dict()
|
||||
self.core.lgd.config[self.name]["wine_prefix"] = self.select_path.text()
|
||||
if self.select_path.text() == "":
|
||||
self.core.lgd.config[self.name].pop("wine_prefix")
|
||||
logger.info("Remove wine_prefix section")
|
||||
else:
|
||||
logger.info("Set config of wine_prefix to " + self.select_path.text())
|
||||
if self.core.lgd.config[self.name] == {}:
|
||||
self.core.lgd.config.remove_section(self.name)
|
||||
self.core.lgd.save_config()
|
||||
self.core.lgd.config.add_section(self.name)
|
||||
|
||||
def save_wineexec(self):
|
||||
if not self.name in self.core.lgd.config.sections():
|
||||
self.core.lgd.config[self.name] = dict()
|
||||
self.core.lgd.config[self.name]["wine_executable"] = self.select_wine_exec.text()
|
||||
if self.select_wine_exec.text() == "":
|
||||
self.core.lgd.config[self.name].pop("wine_executable")
|
||||
logger.info("Remove wine executable section")
|
||||
self.core.lgd.config.set(self.name, setting_name, widget.text())
|
||||
if widget.text() == "":
|
||||
self.core.lgd.config.remove_option(self.name, setting_name)
|
||||
else:
|
||||
logger.info("Set config of wine executable to " + self.select_wine_exec.text())
|
||||
logger.info("Set config of wine_prefix to " + widget.text())
|
||||
if self.core.lgd.config[self.name] == {}:
|
||||
self.core.lgd.config.remove_section(self.name)
|
||||
self.core.lgd.save_config()
|
||||
|
|
Loading…
Reference in a new issue