1
0
Fork 0
mirror of synced 2024-07-05 14:40:42 +12:00
Rare/rare/components/tabs/settings/linux.py

72 lines
3.3 KiB
Python
Raw Normal View History

2021-02-20 06:09:00 +13:00
from logging import getLogger
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QPushButton, QFileDialog, QLineEdit, QGroupBox
2021-02-20 06:09:00 +13:00
2021-04-08 08:42:30 +12:00
from rare.components.tabs.settings.dxvk import DxvkWidget
from rare.components.tabs.settings.settings_widget import SettingsWidget
2021-04-08 08:39:23 +12:00
from rare.utils.extra_widgets import PathEdit
2021-03-19 00:45:59 +13:00
from custom_legendary.core import LegendaryCore
2021-02-20 06:09:00 +13:00
logger = getLogger("LinuxSettings")
2021-02-20 00:57:55 +13:00
class LinuxSettings(QGroupBox):
2021-03-10 09:57:54 +13:00
def __init__(self, core: LegendaryCore, name="default"):
2021-02-20 00:57:55 +13:00
super(LinuxSettings, self).__init__()
self.layout = QVBoxLayout()
2021-03-10 09:57:54 +13:00
self.name = name
2021-02-20 06:09:00 +13:00
self.core = core
self.setTitle(self.tr("Linux settings"))
self.setObjectName("group")
2021-02-20 06:09:00 +13:00
# Wineprefix
2021-03-10 09:57:54 +13:00
self.select_path = PathEdit(self.core.lgd.config.get(self.name, "wine_prefix", fallback=""),
2021-02-20 06:09:00 +13:00
type_of_file=QFileDialog.DirectoryOnly,
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)
2021-03-10 09:57:54 +13:00
self.install_dir_widget = SettingsWidget(self.tr("Default Wine Prefix"), self.select_path,
self.save_path_button)
2021-02-20 06:09:00 +13:00
self.layout.addWidget(self.install_dir_widget)
# Wine executable
2021-03-10 09:57:54 +13:00
self.select_wine_exec = QLineEdit(self.core.lgd.config.get(self.name, "wine_executable", fallback=""))
2021-02-20 06:09:00 +13:00
self.save_wine_exec = QPushButton("Save")
self.save_wine_exec.clicked.connect(self.save_wineexec)
2021-03-10 09:57:54 +13:00
self.install_dir_widget = SettingsWidget(self.tr("Default Wine executable"), self.select_wine_exec,
self.save_wine_exec)
2021-02-20 06:09:00 +13:00
self.layout.addWidget(self.install_dir_widget)
# dxvk
self.dxvk_widget = DxvkWidget(core)
self.layout.addWidget(self.dxvk_widget)
2021-03-10 09:57:54 +13:00
if name == "default":
self.layout.addStretch(1)
2021-02-20 06:09:00 +13:00
self.setLayout(self.layout)
2021-02-20 00:57:55 +13:00
2021-02-20 06:09:00 +13:00
def save_wineprefix(self):
2021-03-10 09:57:54 +13:00
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()
2021-02-20 06:09:00 +13:00
if self.select_path.text() == "":
2021-03-10 09:57:54 +13:00
self.core.lgd.config[self.name].pop("wine_prefix")
2021-02-20 06:09:00 +13:00
logger.info("Remove wine_prefix section")
else:
logger.info("Set config of wine_prefix to " + self.select_path.text())
2021-03-10 09:57:54 +13:00
if self.core.lgd.config[self.name] == {}:
self.core.lgd.config.remove_section(self.name)
2021-02-20 06:09:00 +13:00
self.core.lgd.save_config()
def save_wineexec(self):
2021-03-10 09:57:54 +13:00
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()
2021-02-20 06:09:00 +13:00
if self.select_wine_exec.text() == "":
2021-03-10 09:57:54 +13:00
self.core.lgd.config[self.name].pop("wine_executable")
2021-02-20 06:09:00 +13:00
logger.info("Remove wine executable section")
else:
logger.info("Set config of wine executable to " + self.select_wine_exec.text())
2021-03-10 09:57:54 +13:00
if self.core.lgd.config[self.name] == {}:
self.core.lgd.config.remove_section(self.name)
2021-02-20 06:09:00 +13:00
self.core.lgd.save_config()