diff -r a081458cc57b -r 144a6b854f70 eric7/E5Gui/EricPathPickerDialog.py --- a/eric7/E5Gui/EricPathPickerDialog.py Sat May 22 19:52:34 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,162 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright (c) 2018 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> -# - -""" -Module implementing a dialog to enter a file system path using a file picker. -""" - -from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel - -from .EricPathPicker import EricPathPicker, EricPathPickerModes - - -class EricPathPickerDialog(QDialog): - """ - Class implementing a dialog to enter a file system path using a file - picker. - """ - def __init__(self, parent=None): - """ - Constructor - - @param parent reference to the parent widget - @type QWidget - """ - super().__init__(parent) - - self.setMinimumWidth(400) - - self.__layout = QVBoxLayout(self) - - self.__label = QLabel(self) - self.__label.setWordWrap(True) - - self.__pathPicker = EricPathPicker(self) - self.__buttonBox = QDialogButtonBox( - QDialogButtonBox.StandardButton.Cancel | - QDialogButtonBox.StandardButton.Ok, self) - - self.__layout.addWidget(self.__label) - self.__layout.addWidget(self.__pathPicker) - self.__layout.addWidget(self.__buttonBox) - - self.__buttonBox.accepted.connect(self.accept) - self.__buttonBox.rejected.connect(self.reject) - - def setLabelText(self, text): - """ - Public method to set the label text. - - @param text label text - @type str - """ - self.__label.setText(text) - - def setTitle(self, title): - """ - Public method to set the window title. - - @param title window title - @type str - """ - self.setWindowTitle(title) - self.__pathPicker.setWindowTitle(title) - - def setPickerMode(self, mode): - """ - Public method to set the mode of the path picker. - - @param mode picker mode - @type EricPathPickerModes - """ - self.__pathPicker.setMode(mode) - - def setPickerPath(self, path): - """ - Public method to set the path of the path picker. - - @param path path to be set - @type str - """ - self.__pathPicker.setPath(path) - - def setDefaultDirectory(self, directory): - """ - Public method to set the default directory of the path picker. - - @param directory default directory - @type str - """ - self.__pathPicker.setDefaultDirectory(directory) - - def setPickerFilters(self, filters): - """ - Public method to set the filters of the path picker. - - Note: Multiple filters must be separated by ';;'. - - @param filters string containing the file filters - @type str - """ - self.__pathPicker.setFilters(filters) - - def getPath(self): - """ - Public method to get the current path. - - @return current path - @rtype str - """ - return self.__pathPicker.path() - - -def getPath(parent, title, label, mode=EricPathPickerModes.OPEN_FILE_MODE, - path="", defaultDirectory="", filters=None): - """ - Function to get a file or directory path from the user. - - @param parent reference to the parent widget - @type QWidget - @param title title of the dialog - @type str - @param label text to be shown above the path picker - @type str - @param mode mode of the path picker - @type EricPathPickerModes - @param path initial path to be shown - @type str - @param defaultDirectory default directory of the path picker selection - dialog - @type str - @param filters list of file filters - @type list of str - @return tuple containing the entered path and a flag indicating that the - user pressed the OK button - @rtype tuple of (str, bool) - """ - # step 1: setup of the dialog - dlg = EricPathPickerDialog(parent) - if title: - dlg.setTitle(title) - if label: - dlg.setLabelText(label) - dlg.setPickerMode(mode) - if path: - dlg.setPickerPath(path) - if defaultDirectory: - dlg.setDefaultDirectory(defaultDirectory) - if filters is not None and len(filters) > 0: - dlg.setPickerFilters(";;".join(filters)) - - # step 2: show the dialog and get the result - if dlg.exec() == QDialog.DialogCode.Accepted: - ok = True - path = dlg.getPath().strip() - else: - ok = False - path = "" - - # step 3: return the result - return path, ok