1
0
Fork 0
mirror of synced 2024-06-26 10:11:19 +12:00

Improve PathEdit a bit more

Add placeholder text
Remove some unused variables
Open dialog starting from path if set
This commit is contained in:
Stelios Tsampas 2021-04-29 19:05:04 +03:00
parent 115d142f94
commit 748d51f31f
7 changed files with 35 additions and 24 deletions

View file

@ -26,7 +26,7 @@ class InstallDialog(QDialog):
if not default_path: if not default_path:
default_path = os.path.expanduser("~/legendary") default_path = os.path.expanduser("~/legendary")
if not update: if not update:
self.install_path_field = PathEdit(text=default_path, type_of_file=QFileDialog.DirectoryOnly) self.install_path_field = PathEdit(text=default_path, file_type=QFileDialog.DirectoryOnly)
self.form.addRow(QLabel("Install directory"), self.install_path_field) self.form.addRow(QLabel("Install directory"), self.install_path_field)
if self.core.lgd.config.has_option("Legendary", "max_workers"): if self.core.lgd.config.has_option("Legendary", "max_workers"):

View file

@ -19,8 +19,7 @@ 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(),
type_of_file=QFileDialog.DirectoryOnly, file_type=QFileDialog.DirectoryOnly)
infotext="Default")
self.install_dir.text_edit.textChanged.connect( self.install_dir.text_edit.textChanged.connect(
lambda t: self.install_dir.save_path_button.setDisabled(False) lambda t: self.install_dir.save_path_button.setDisabled(False)
) )

View file

@ -20,8 +20,7 @@ class LinuxSettings(QWidget, Ui_LinuxSettings):
# Wineprefix # Wineprefix
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=""),
type_of_file=QFileDialog.DirectoryOnly, file_type=QFileDialog.DirectoryOnly)
infotext="Default")
self.wine_prefix.text_edit.textChanged.connect( self.wine_prefix.text_edit.textChanged.connect(
lambda t: self.wine_prefix.save_path_button.setDisabled(False) lambda t: self.wine_prefix.save_path_button.setDisabled(False)
) )
@ -33,9 +32,8 @@ class LinuxSettings(QWidget, Ui_LinuxSettings):
# 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=""),
type_of_file=QFileDialog.ExistingFile, file_type=QFileDialog.ExistingFile,
name_filter="Wine executable (wine wine64)", name_filter="Wine executable (wine wine64)")
infotext="Default")
self.wine_exec.text_edit.textChanged.connect( self.wine_exec.text_edit.textChanged.connect(
lambda t: self.wine_exec.save_path_button.setDisabled(False) lambda t: self.wine_exec.save_path_button.setDisabled(False)
) )

View file

@ -41,7 +41,7 @@ class RareSettings(QWidget, Ui_RareSettings):
language = self.settings.value("language", get_lang(), type=str) language = self.settings.value("language", get_lang(), type=str)
# Select Image directory # Select Image directory
self.img_dir = PathEdit(self.img_dir_path, type_of_file=QFileDialog.DirectoryOnly) self.img_dir = PathEdit(self.img_dir_path, file_type=QFileDialog.DirectoryOnly)
self.img_dir.text_edit.textChanged.connect(lambda t: self.img_dir.save_path_button.setDisabled(False)) 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.clicked.connect(self.save_path)
self.img_dir.save_path_button.setDisabled(True) self.img_dir.save_path_button.setDisabled(True)

View file

@ -122,30 +122,32 @@ class ClickableLabel(QLabel):
class PathEdit(QWidget, Ui_PathEdit): class PathEdit(QWidget, Ui_PathEdit):
def __init__(self, text: str = "", def __init__(self,
type_of_file: QFileDialog.FileType = QFileDialog.AnyFile, text: str = "",
filter: str = None, name_filter: str = None, infotext: str = ""): file_type: QFileDialog.FileType = QFileDialog.AnyFile,
type_filter: str = None,
name_filter: str = None):
super(PathEdit, self).__init__() super(PathEdit, self).__init__()
self.setupUi(self) self.setupUi(self)
self.filter = filter self.type_filter = type_filter
self.name_filter = name_filter self.name_filter = name_filter
self.type_of_file = type_of_file self.file_type = file_type
self.info_text = infotext if text:
self.text_edit.setText(text) self.text_edit.setText(text)
self.path_select.clicked.connect(self.set_path) self.path_select.clicked.connect(self.set_path)
def setPlaceholderText(self, text: str):
self.text_edit.setPlaceholderText(text)
def text(self): def text(self):
return self.text_edit.text() return self.text_edit.text()
def set_path(self): def set_path(self):
dlg = QFileDialog(self, self.tr("Choose Path"), os.path.expanduser("~/")) dlg_path = self.text_edit.text()
dlg.setFileMode(self.type_of_file) if not dlg_path:
if self.filter: dlg_path = os.path.expanduser("~/")
dlg.setFilter([self.filter]) dlg = QFileDialog(self, self.tr("Choose Path"), dlg_path)
dlg.setFileMode(self.file_type)
if self.type_filter:
dlg.setFilter([self.type_filter])
if self.name_filter: if self.name_filter:
dlg.setNameFilter(self.name_filter) dlg.setNameFilter(self.name_filter)
if dlg.exec_(): if dlg.exec_():

View file

@ -22,6 +22,7 @@ class Ui_PathEdit(object):
self.path_select.setObjectName("path_select") self.path_select.setObjectName("path_select")
self.layout_pathedit.addWidget(self.path_select, 0, 1, 1, 1) self.layout_pathedit.addWidget(self.path_select, 0, 1, 1, 1)
self.text_edit = QtWidgets.QLineEdit(PathEdit) self.text_edit = QtWidgets.QLineEdit(PathEdit)
self.text_edit.setMinimumSize(QtCore.QSize(300, 0))
self.text_edit.setObjectName("text_edit") self.text_edit.setObjectName("text_edit")
self.layout_pathedit.addWidget(self.text_edit, 0, 0, 1, 1) self.layout_pathedit.addWidget(self.text_edit, 0, 0, 1, 1)
self.layout_pathedit_save = QtWidgets.QHBoxLayout() self.layout_pathedit_save = QtWidgets.QHBoxLayout()
@ -40,6 +41,7 @@ class Ui_PathEdit(object):
def retranslateUi(self, PathEdit): def retranslateUi(self, PathEdit):
_translate = QtCore.QCoreApplication.translate _translate = QtCore.QCoreApplication.translate
PathEdit.setWindowTitle(_translate("PathEdit", "PathEdit")) PathEdit.setWindowTitle(_translate("PathEdit", "PathEdit"))
self.text_edit.setPlaceholderText(_translate("PathEdit", "Default"))
self.save_path_button.setText(_translate("PathEdit", "Save")) self.save_path_button.setText(_translate("PathEdit", "Save"))

View file

@ -26,7 +26,17 @@
</widget> </widget>
</item> </item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLineEdit" name="text_edit"/> <widget class="QLineEdit" name="text_edit">
<property name="minimumSize">
<size>
<width>300</width>
<height>0</height>
</size>
</property>
<property name="placeholderText">
<string>Default</string>
</property>
</widget>
</item> </item>
<item row="1" column="0" colspan="2"> <item row="1" column="0" colspan="2">
<layout class="QHBoxLayout" name="layout_pathedit_save"> <layout class="QHBoxLayout" name="layout_pathedit_save">