Make PathEdit more self-contained
This commit is contained in:
parent
6b79b3a55e
commit
8c882177e1
|
@ -92,8 +92,7 @@ class GameSettings(QScrollArea):
|
||||||
self.select_proton_widget = SettingsWidget(self.tr("Proton Wrapper"), self.select_proton)
|
self.select_proton_widget = SettingsWidget(self.tr("Proton Wrapper"), self.select_proton)
|
||||||
self.layout.addWidget(self.select_proton_widget)
|
self.layout.addWidget(self.select_proton_widget)
|
||||||
|
|
||||||
self.proton_prefix = PathEdit("x", QFileDialog.DirectoryOnly)
|
self.proton_prefix = PathEdit("x", QFileDialog.DirectoryOnly, save_func=self.update_prefix)
|
||||||
self.proton_prefix.save_path_button.clicked.connect(self.update_prefix)
|
|
||||||
self.proton_prefix_widget = SettingsWidget(self.tr("Proton prefix"), self.proton_prefix)
|
self.proton_prefix_widget = SettingsWidget(self.tr("Proton prefix"), self.proton_prefix)
|
||||||
self.layout.addWidget(self.proton_prefix_widget)
|
self.layout.addWidget(self.proton_prefix_widget)
|
||||||
|
|
||||||
|
|
|
@ -55,8 +55,7 @@ class ImportWidget(QWidget):
|
||||||
self.app_name_input.setLayout(minilayout)
|
self.app_name_input.setLayout(minilayout)
|
||||||
self.app_name_input.textChanged.connect(self.app_name_changed)
|
self.app_name_input.textChanged.connect(self.app_name_changed)
|
||||||
|
|
||||||
self.path_edit = PathEdit(os.path.expanduser("~"), QFileDialog.DirectoryOnly)
|
self.path_edit = PathEdit(os.path.expanduser("~"), QFileDialog.DirectoryOnly, edit_func=self.path_changed)
|
||||||
self.path_edit.text_edit.textChanged.connect(self.path_changed)
|
|
||||||
self.gb_layout.addWidget(self.path_edit)
|
self.gb_layout.addWidget(self.path_edit)
|
||||||
|
|
||||||
self.gb_layout.addWidget(self.override_app_name_label)
|
self.gb_layout.addWidget(self.override_app_name_label)
|
||||||
|
|
|
@ -14,7 +14,6 @@ from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
class Ui_DxvkSettings(object):
|
class Ui_DxvkSettings(object):
|
||||||
def setupUi(self, DxvkSettings):
|
def setupUi(self, DxvkSettings):
|
||||||
DxvkSettings.setObjectName("DxvkSettings")
|
DxvkSettings.setObjectName("DxvkSettings")
|
||||||
DxvkSettings.resize(598, 182)
|
|
||||||
self.gridLayout = QtWidgets.QGridLayout(DxvkSettings)
|
self.gridLayout = QtWidgets.QGridLayout(DxvkSettings)
|
||||||
self.gridLayout.setObjectName("gridLayout")
|
self.gridLayout.setObjectName("gridLayout")
|
||||||
self.gb_dxvk_options = QtWidgets.QGroupBox(DxvkSettings)
|
self.gb_dxvk_options = QtWidgets.QGroupBox(DxvkSettings)
|
||||||
|
@ -42,7 +41,7 @@ class Ui_DxvkSettings(object):
|
||||||
self.fps = QtWidgets.QCheckBox(self.gb_dxvk_options)
|
self.fps = QtWidgets.QCheckBox(self.gb_dxvk_options)
|
||||||
self.fps.setObjectName("fps")
|
self.fps.setObjectName("fps")
|
||||||
self.layout_dxvk_options.addWidget(self.fps, 2, 0, 1, 1)
|
self.layout_dxvk_options.addWidget(self.fps, 2, 0, 1, 1)
|
||||||
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
spacerItem = QtWidgets.QSpacerItem(0, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||||
self.layout_dxvk_options.addItem(spacerItem, 0, 3, 4, 1)
|
self.layout_dxvk_options.addItem(spacerItem, 0, 3, 4, 1)
|
||||||
self.gridLayout.addWidget(self.gb_dxvk_options, 2, 0, 1, 3)
|
self.gridLayout.addWidget(self.gb_dxvk_options, 2, 0, 1, 3)
|
||||||
self.lbl_show_dxvk = QtWidgets.QLabel(DxvkSettings)
|
self.lbl_show_dxvk = QtWidgets.QLabel(DxvkSettings)
|
||||||
|
|
|
@ -19,12 +19,8 @@ class LegendarySettings(QWidget, Ui_LegendarySettings):
|
||||||
|
|
||||||
# Default installation directory
|
# Default installation directory
|
||||||
self.install_dir = PathEdit(core.get_default_install_dir(),
|
self.install_dir = PathEdit(core.get_default_install_dir(),
|
||||||
file_type=QFileDialog.DirectoryOnly)
|
file_type=QFileDialog.DirectoryOnly,
|
||||||
self.install_dir.text_edit.textChanged.connect(
|
save_func=self.save_path)
|
||||||
lambda t: self.install_dir.save_path_button.setDisabled(False)
|
|
||||||
)
|
|
||||||
self.install_dir.save_path_button.clicked.connect(self.save_path)
|
|
||||||
self.install_dir.save_path_button.setDisabled(True)
|
|
||||||
self.layout_install_dir.addWidget(self.install_dir)
|
self.layout_install_dir.addWidget(self.install_dir)
|
||||||
|
|
||||||
# Max Workers
|
# Max Workers
|
||||||
|
|
|
@ -18,29 +18,17 @@ class LinuxSettings(QWidget, Ui_LinuxSettings):
|
||||||
self.name = name if name is not None else "default"
|
self.name = name if name is not None else "default"
|
||||||
self.core = core
|
self.core = core
|
||||||
|
|
||||||
# Wineprefix
|
# Wine prefix
|
||||||
self.wine_prefix = PathEdit(self.core.lgd.config.get(self.name, "wine_prefix", fallback=""),
|
self.wine_prefix = PathEdit(self.core.lgd.config.get(self.name, "wine_prefix", fallback=""),
|
||||||
file_type=QFileDialog.DirectoryOnly)
|
file_type=QFileDialog.DirectoryOnly,
|
||||||
self.wine_prefix.text_edit.textChanged.connect(
|
save_func=lambda: self.save_setting(self.wine_prefix, "wine_prefix"))
|
||||||
lambda t: self.wine_prefix.save_path_button.setDisabled(False)
|
|
||||||
)
|
|
||||||
self.wine_prefix.save_path_button.clicked.connect(
|
|
||||||
lambda: self.save_setting(self.wine_prefix, "wine_prefix")
|
|
||||||
)
|
|
||||||
self.wine_prefix.save_path_button.setDisabled(True)
|
|
||||||
self.prefix_layout.addWidget(self.wine_prefix)
|
self.prefix_layout.addWidget(self.wine_prefix)
|
||||||
|
|
||||||
# Wine executable
|
# Wine executable
|
||||||
self.wine_exec = PathEdit(self.core.lgd.config.get(self.name, "wine_executable", fallback=""),
|
self.wine_exec = PathEdit(self.core.lgd.config.get(self.name, "wine_executable", fallback=""),
|
||||||
file_type=QFileDialog.ExistingFile,
|
file_type=QFileDialog.ExistingFile,
|
||||||
name_filter="Wine executable (wine wine64)")
|
name_filter="Wine executable (wine wine64)",
|
||||||
self.wine_exec.text_edit.textChanged.connect(
|
save_func=lambda: self.save_setting(self.wine_exec, "wine_executable"))
|
||||||
lambda t: self.wine_exec.save_path_button.setDisabled(False)
|
|
||||||
)
|
|
||||||
self.wine_exec.save_path_button.clicked.connect(
|
|
||||||
lambda: self.save_setting(self.wine_exec, "wine_executable")
|
|
||||||
)
|
|
||||||
self.wine_exec.save_path_button.setDisabled(True)
|
|
||||||
self.exec_layout.addWidget(self.wine_exec)
|
self.exec_layout.addWidget(self.wine_exec)
|
||||||
|
|
||||||
# dxvk
|
# dxvk
|
||||||
|
@ -56,11 +44,10 @@ class LinuxSettings(QWidget, Ui_LinuxSettings):
|
||||||
self.core.lgd.config.add_section(self.name)
|
self.core.lgd.config.add_section(self.name)
|
||||||
|
|
||||||
self.core.lgd.config.set(self.name, setting_name, widget.text())
|
self.core.lgd.config.set(self.name, setting_name, widget.text())
|
||||||
if widget.text() == "":
|
if not widget.text():
|
||||||
self.core.lgd.config.remove_option(self.name, setting_name)
|
self.core.lgd.config.remove_option(self.name, setting_name)
|
||||||
else:
|
else:
|
||||||
logger.info("Set config of wine_prefix to " + widget.text())
|
logger.info("Set config of wine_prefix to " + widget.text())
|
||||||
if self.core.lgd.config[self.name] == {}:
|
if self.core.lgd.config[self.name] == {}:
|
||||||
self.core.lgd.config.remove_section(self.name)
|
self.core.lgd.config.remove_section(self.name)
|
||||||
widget.save_path_button.setDisabled(True)
|
|
||||||
self.core.lgd.save_config()
|
self.core.lgd.save_config()
|
||||||
|
|
|
@ -42,10 +42,7 @@ class RareSettings(QWidget, Ui_RareSettings):
|
||||||
self.logdir = os.path.expanduser("~/.cache/rare/logs")
|
self.logdir = os.path.expanduser("~/.cache/rare/logs")
|
||||||
|
|
||||||
# Select Image directory
|
# Select Image directory
|
||||||
self.img_dir = PathEdit(self.img_dir_path, file_type=QFileDialog.DirectoryOnly)
|
self.img_dir = PathEdit(self.img_dir_path, file_type=QFileDialog.DirectoryOnly, save_func=self.save_path)
|
||||||
self.img_dir.text_edit.textChanged.connect(lambda t: self.img_dir.save_path_button.setDisabled(False))
|
|
||||||
self.img_dir.save_path_button.clicked.connect(self.save_path)
|
|
||||||
self.img_dir.save_path_button.setDisabled(True)
|
|
||||||
self.layout_img_dir.addWidget(self.img_dir)
|
self.layout_img_dir.addWidget(self.img_dir)
|
||||||
|
|
||||||
# Select lang
|
# Select lang
|
||||||
|
@ -98,7 +95,6 @@ class RareSettings(QWidget, Ui_RareSettings):
|
||||||
self.settings.remove("window_size")
|
self.settings.remove("window_size")
|
||||||
|
|
||||||
def save_path(self):
|
def save_path(self):
|
||||||
self.img_dir.save_path_button.setDisabled(True)
|
|
||||||
self.update_path()
|
self.update_path()
|
||||||
|
|
||||||
def update_lang(self, i: int):
|
def update_lang(self, i: int):
|
||||||
|
|
|
@ -126,20 +126,36 @@ class PathEdit(QWidget, Ui_PathEdit):
|
||||||
text: str = "",
|
text: str = "",
|
||||||
file_type: QFileDialog.FileType = QFileDialog.AnyFile,
|
file_type: QFileDialog.FileType = QFileDialog.AnyFile,
|
||||||
type_filter: str = None,
|
type_filter: str = None,
|
||||||
name_filter: str = None):
|
name_filter: str = None,
|
||||||
|
edit_func: callable = None,
|
||||||
|
save_func: callable = None):
|
||||||
super(PathEdit, self).__init__()
|
super(PathEdit, self).__init__()
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
|
|
||||||
self.type_filter = type_filter
|
self.type_filter = type_filter
|
||||||
self.name_filter = name_filter
|
self.name_filter = name_filter
|
||||||
self.file_type = file_type
|
self.file_type = file_type
|
||||||
|
self.edit_func = edit_func
|
||||||
|
self.save_func = save_func
|
||||||
if text:
|
if text:
|
||||||
self.text_edit.setText(text)
|
self.text_edit.setText(text)
|
||||||
|
if self.edit_func is not None:
|
||||||
|
self.text_edit.textChanged.connect(self.edit_func)
|
||||||
|
if self.save_func is None:
|
||||||
|
self.save_path_button.setVisible(False)
|
||||||
|
else:
|
||||||
|
self.text_edit.textChanged.connect(lambda t: self.save_path_button.setDisabled(False))
|
||||||
|
self.save_path_button.clicked.connect(self.save)
|
||||||
|
self.save_path_button.setDisabled(True)
|
||||||
self.path_select.clicked.connect(self.set_path)
|
self.path_select.clicked.connect(self.set_path)
|
||||||
|
|
||||||
def text(self):
|
def text(self):
|
||||||
return self.text_edit.text()
|
return self.text_edit.text()
|
||||||
|
|
||||||
|
def save(self):
|
||||||
|
self.save_func()
|
||||||
|
self.save_path_button.setDisabled(True)
|
||||||
|
|
||||||
def set_path(self):
|
def set_path(self):
|
||||||
dlg_path = self.text_edit.text()
|
dlg_path = self.text_edit.text()
|
||||||
if not dlg_path:
|
if not dlg_path:
|
||||||
|
|
|
@ -2,14 +2,6 @@
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>DxvkSettings</class>
|
<class>DxvkSettings</class>
|
||||||
<widget class="QGroupBox" name="DxvkSettings">
|
<widget class="QGroupBox" name="DxvkSettings">
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>598</width>
|
|
||||||
<height>182</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>DxvkSettings</string>
|
<string>DxvkSettings</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -79,7 +71,7 @@
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>40</width>
|
<width>0</width>
|
||||||
<height>20</height>
|
<height>20</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
|
Loading…
Reference in a new issue