src/eric7/EricWidgets/EricPathPickerDialog.py

Wed, 13 Jul 2022 14:55:47 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 13 Jul 2022 14:55:47 +0200
branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9238
a7cbf3d61498
permissions
-rw-r--r--

Reformatted the source code using the 'Black' utility.

6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
8881
54e42bc2437a Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
3 # Copyright (c) 2018 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to enter a file system path using a file picker.
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
10 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
12 from .EricPathPicker import EricPathPicker, EricPathPickerModes
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
6466
dac80ad0de75 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6444
diff changeset
14
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
15 class EricPathPickerDialog(QDialog):
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 Class implementing a dialog to enter a file system path using a file
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 picker.
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
20
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 def __init__(self, parent=None):
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
24
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 @param parent reference to the parent widget
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 @type QWidget
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
28 super().__init__(parent)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
29
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 self.setMinimumWidth(400)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
31
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 self.__layout = QVBoxLayout(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
33
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 self.__label = QLabel(self)
6444
7ce7a43aeeba E5PathPickerDialog: enabled word wrap for the label text to be able to cope with longer texts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6441
diff changeset
35 self.__label.setWordWrap(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
36
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
37 self.__pathPicker = EricPathPicker(self)
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 self.__buttonBox = QDialogButtonBox(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
39 QDialogButtonBox.StandardButton.Cancel | QDialogButtonBox.StandardButton.Ok,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
40 self,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
41 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
42
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.__layout.addWidget(self.__label)
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.__layout.addWidget(self.__pathPicker)
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 self.__layout.addWidget(self.__buttonBox)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
46
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 self.__buttonBox.accepted.connect(self.accept)
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.__buttonBox.rejected.connect(self.reject)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
49
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 def setLabelText(self, text):
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 Public method to set the label text.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
53
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 @param text label text
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 @type str
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 self.__label.setText(text)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
58
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 def setTitle(self, title):
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 Public method to set the window title.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
62
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 @param title window title
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 @type str
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 self.setWindowTitle(title)
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 self.__pathPicker.setWindowTitle(title)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
68
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 def setPickerMode(self, mode):
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 Public method to set the mode of the path picker.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
72
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 @param mode picker mode
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
74 @type EricPathPickerModes
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 self.__pathPicker.setMode(mode)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
77
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 def setPickerPath(self, path):
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 Public method to set the path of the path picker.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
81
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 @param path path to be set
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 @type str
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 self.__pathPicker.setPath(path)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
86
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 def setDefaultDirectory(self, directory):
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 Public method to set the default directory of the path picker.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
90
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 @param directory default directory
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 @type str
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 self.__pathPicker.setDefaultDirectory(directory)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
95
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 def setPickerFilters(self, filters):
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 Public method to set the filters of the path picker.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
99
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 Note: Multiple filters must be separated by ';;'.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
101
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 @param filters string containing the file filters
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 @type str
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 self.__pathPicker.setFilters(filters)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
106
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 def getPath(self):
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 Public method to get the current path.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
110
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 @return current path
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 @rtype str
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 return self.__pathPicker.path()
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
117 def getPath(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
118 parent,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
119 title,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
120 label,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
121 mode=EricPathPickerModes.OPEN_FILE_MODE,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
122 path="",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
123 defaultDirectory="",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
124 filters=None,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
125 ):
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 Function to get a file or directory path from the user.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
128
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 @param parent reference to the parent widget
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 @type QWidget
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 @param title title of the dialog
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 @type str
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 @param label text to be shown above the path picker
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 @type str
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 @param mode mode of the path picker
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
136 @type EricPathPickerModes
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 @param path initial path to be shown
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 @type str
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 @param defaultDirectory default directory of the path picker selection
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 dialog
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 @type str
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 @param filters list of file filters
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 @type list of str
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 @return tuple containing the entered path and a flag indicating that the
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 user pressed the OK button
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 @rtype tuple of (str, bool)
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 # step 1: setup of the dialog
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
149 dlg = EricPathPickerDialog(parent)
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 if title:
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 dlg.setTitle(title)
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 if label:
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 dlg.setLabelText(label)
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 dlg.setPickerMode(mode)
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 if path:
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 dlg.setPickerPath(path)
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 if defaultDirectory:
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 dlg.setDefaultDirectory(defaultDirectory)
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 if filters is not None and len(filters) > 0:
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 dlg.setPickerFilters(";;".join(filters))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
161
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 # step 2: show the dialog and get the result
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
163 if dlg.exec() == QDialog.DialogCode.Accepted:
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 ok = True
6441
b7c3b34661d5 E5PathPickerDialog: fixed an issue causing file paths with leading or trailing whitespace being returned.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6440
diff changeset
165 path = dlg.getPath().strip()
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 else:
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 ok = False
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 path = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
169
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 # step 3: return the result
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 return path, ok

eric ide

mercurial