diff --git a/rare/components/dialogs/install_dialog.py b/rare/components/dialogs/install_dialog.py index d3629725..dabb7654 100644 --- a/rare/components/dialogs/install_dialog.py +++ b/rare/components/dialogs/install_dialog.py @@ -26,7 +26,7 @@ class InstallDialog(QDialog): if not default_path: default_path = os.path.expanduser("~/legendary") 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) if self.core.lgd.config.has_option("Legendary", "max_workers"): diff --git a/rare/components/tabs/settings/legendary.py b/rare/components/tabs/settings/legendary.py index c23b98b7..3b9911bc 100644 --- a/rare/components/tabs/settings/legendary.py +++ b/rare/components/tabs/settings/legendary.py @@ -19,8 +19,7 @@ class LegendarySettings(QWidget, Ui_LegendarySettings): # Default installation directory self.install_dir = PathEdit(core.get_default_install_dir(), - type_of_file=QFileDialog.DirectoryOnly, - infotext="Default") + file_type=QFileDialog.DirectoryOnly) self.install_dir.text_edit.textChanged.connect( lambda t: self.install_dir.save_path_button.setDisabled(False) ) diff --git a/rare/components/tabs/settings/linux.py b/rare/components/tabs/settings/linux.py index d63633b3..09c5c078 100644 --- a/rare/components/tabs/settings/linux.py +++ b/rare/components/tabs/settings/linux.py @@ -20,8 +20,7 @@ class LinuxSettings(QWidget, Ui_LinuxSettings): # Wineprefix self.wine_prefix = PathEdit(self.core.lgd.config.get(self.name, "wine_prefix", fallback=""), - type_of_file=QFileDialog.DirectoryOnly, - infotext="Default") + file_type=QFileDialog.DirectoryOnly) self.wine_prefix.text_edit.textChanged.connect( lambda t: self.wine_prefix.save_path_button.setDisabled(False) ) @@ -33,9 +32,8 @@ class LinuxSettings(QWidget, Ui_LinuxSettings): # Wine executable self.wine_exec = PathEdit(self.core.lgd.config.get(self.name, "wine_executable", fallback=""), - type_of_file=QFileDialog.ExistingFile, - name_filter="Wine executable (wine wine64)", - infotext="Default") + file_type=QFileDialog.ExistingFile, + name_filter="Wine executable (wine wine64)") self.wine_exec.text_edit.textChanged.connect( lambda t: self.wine_exec.save_path_button.setDisabled(False) ) diff --git a/rare/components/tabs/settings/rare.py b/rare/components/tabs/settings/rare.py index 8a1b9f13..f6845467 100644 --- a/rare/components/tabs/settings/rare.py +++ b/rare/components/tabs/settings/rare.py @@ -41,7 +41,7 @@ class RareSettings(QWidget, Ui_RareSettings): language = self.settings.value("language", get_lang(), type=str) # 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.save_path_button.clicked.connect(self.save_path) self.img_dir.save_path_button.setDisabled(True) diff --git a/rare/utils/extra_widgets.py b/rare/utils/extra_widgets.py index 54443cc2..35139142 100644 --- a/rare/utils/extra_widgets.py +++ b/rare/utils/extra_widgets.py @@ -122,30 +122,32 @@ class ClickableLabel(QLabel): class PathEdit(QWidget, Ui_PathEdit): - def __init__(self, text: str = "", - type_of_file: QFileDialog.FileType = QFileDialog.AnyFile, - filter: str = None, name_filter: str = None, infotext: str = ""): + def __init__(self, + text: str = "", + file_type: QFileDialog.FileType = QFileDialog.AnyFile, + type_filter: str = None, + name_filter: str = None): super(PathEdit, self).__init__() self.setupUi(self) - self.filter = filter + self.type_filter = type_filter self.name_filter = name_filter - self.type_of_file = type_of_file - self.info_text = infotext - self.text_edit.setText(text) + self.file_type = file_type + if text: + self.text_edit.setText(text) self.path_select.clicked.connect(self.set_path) - def setPlaceholderText(self, text: str): - self.text_edit.setPlaceholderText(text) - def text(self): return self.text_edit.text() def set_path(self): - dlg = QFileDialog(self, self.tr("Choose Path"), os.path.expanduser("~/")) - dlg.setFileMode(self.type_of_file) - if self.filter: - dlg.setFilter([self.filter]) + dlg_path = self.text_edit.text() + if not dlg_path: + dlg_path = os.path.expanduser("~/") + 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: dlg.setNameFilter(self.name_filter) if dlg.exec_(): diff --git a/rare/utils/pathedit_ui.py b/rare/utils/pathedit_ui.py index d444e962..ec1f3413 100644 --- a/rare/utils/pathedit_ui.py +++ b/rare/utils/pathedit_ui.py @@ -22,6 +22,7 @@ class Ui_PathEdit(object): self.path_select.setObjectName("path_select") self.layout_pathedit.addWidget(self.path_select, 0, 1, 1, 1) self.text_edit = QtWidgets.QLineEdit(PathEdit) + self.text_edit.setMinimumSize(QtCore.QSize(300, 0)) self.text_edit.setObjectName("text_edit") self.layout_pathedit.addWidget(self.text_edit, 0, 0, 1, 1) self.layout_pathedit_save = QtWidgets.QHBoxLayout() @@ -40,6 +41,7 @@ class Ui_PathEdit(object): def retranslateUi(self, PathEdit): _translate = QtCore.QCoreApplication.translate PathEdit.setWindowTitle(_translate("PathEdit", "PathEdit")) + self.text_edit.setPlaceholderText(_translate("PathEdit", "Default")) self.save_path_button.setText(_translate("PathEdit", "Save")) diff --git a/resources/ui/utils/pathedit.ui b/resources/ui/utils/pathedit.ui index 7b0cb78a..b3b0e946 100644 --- a/resources/ui/utils/pathedit.ui +++ b/resources/ui/utils/pathedit.ui @@ -26,7 +26,17 @@ - + + + + 300 + 0 + + + + Default + +