src/eric7/EricWidgets/EricPathPickerDialog.py

Sat, 23 Dec 2023 15:48:12 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 23 Dec 2023 15:48:12 +0100
branch
eric7
changeset 10439
21c28b0f9e41
parent 9653
e67609152c5e
child 10630
552a790fd9bc
permissions
-rw-r--r--

Updated copyright for 2024.

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
10439
21c28b0f9e41 Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
3 # Copyright (c) 2018 - 2024 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
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9322
diff changeset
10 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QLabel, QVBoxLayout
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
9322
3f0fe9a79aa1 Corrected the shown size of the path picker dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9238
diff changeset
50 msh = self.minimumSizeHint()
3f0fe9a79aa1 Corrected the shown size of the path picker dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9238
diff changeset
51 self.resize(max(self.width(), msh.width()), msh.height())
3f0fe9a79aa1 Corrected the shown size of the path picker dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9238
diff changeset
52
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 def setLabelText(self, text):
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 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
56
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 @param text label text
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 @type str
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.__label.setText(text)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
61
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 def setTitle(self, title):
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 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
65
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 @param title window title
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 @type str
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 self.setWindowTitle(title)
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 self.__pathPicker.setWindowTitle(title)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
71
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 def setPickerMode(self, mode):
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 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
75
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 @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
77 @type EricPathPickerModes
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.__pathPicker.setMode(mode)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
80
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 def setPickerFilters(self, filters):
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 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
84
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 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
86
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 @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
88 @type str
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 self.__pathPicker.setFilters(filters)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
91
9238
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
92 def setPickerPath(self, fpath):
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
93 """
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
94 Public method to set the path of the path picker.
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
95
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
96 @param fpath path to be set
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
97 @type str or pathlib.Path
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
98 """
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
99 self.__pathPicker.setText(str(fpath))
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
100
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
101 def setDefaultDirectory(self, directory):
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 """
9238
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
103 Public method to set the default directory of the path picker.
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
104
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
105 @param directory default directory
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
106 @type str or pathlib.Path
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
107 """
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
108 self.__pathPicker.setDefaultDirectory(str(directory))
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
109
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
110 def getText(self):
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
111 """
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
112 Public method to get the current path as text.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
113
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 @return current path
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 @rtype str
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 """
9238
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
117 return self.__pathPicker.text()
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
118
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
119 def getPath(self):
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
120 """
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
121 Public method to get the current path as a pathlib.Path object.
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
122
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
123 @return current path
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
124 @rtype pathlib.Path
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
125 """
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 return self.__pathPicker.path()
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128
9238
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
129 def getStrPath(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
130 parent,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
131 title,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
132 label,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
133 mode=EricPathPickerModes.OPEN_FILE_MODE,
9238
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
134 strPath=None,
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
135 defaultDirectory=None,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
136 filters=None,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
137 ):
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 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
140
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 @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
142 @type QWidget
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 @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
144 @type str
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 @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
146 @type str
9238
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
147 @param mode mode of the path picker (defaults to EricPathPickerModes.OPEN_FILE_MODE)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
148 @type EricPathPickerModes (optional)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
149 @param strPath initial path to be shown (defaults to None)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
150 @type str (optional)
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 @param defaultDirectory default directory of the path picker selection
9238
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
152 dialog (defaults to None)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
153 @type str (optional)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
154 @param filters list of file filters (defaults to None)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
155 @type list of str (optional)
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 @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
157 user pressed the OK button
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 @rtype tuple of (str, bool)
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 """
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 # 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
161 dlg = EricPathPickerDialog(parent)
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 if title:
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 dlg.setTitle(title)
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 if label:
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 dlg.setLabelText(label)
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 dlg.setPickerMode(mode)
9238
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
167 if strPath:
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
168 dlg.setPickerPath(strPath)
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 if defaultDirectory:
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 dlg.setDefaultDirectory(defaultDirectory)
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 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
172 dlg.setPickerFilters(";;".join(filters))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
173
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 # 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
175 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
176 ok = True
9238
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
177 fpath = dlg.getText().strip()
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 else:
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 ok = False
9238
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
180 fpath = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
181
6440
81a4bebbc028 E5PathPickerDialog: added an input dialog using the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 # step 3: return the result
9238
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
183 return fpath, ok
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
184
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
185
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
186 def getPath(
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
187 parent,
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
188 title,
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
189 label,
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
190 mode=EricPathPickerModes.OPEN_FILE_MODE,
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
191 pathlibPath=None,
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
192 defaultDirectory=None,
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
193 filters=None,
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
194 ):
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
195 """
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
196 Function to get a file or directory path from the user.
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
197
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
198 @param parent reference to the parent widget
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
199 @type QWidget
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
200 @param title title of the dialog
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
201 @type str
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
202 @param label text to be shown above the path picker
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
203 @type str
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
204 @param mode mode of the path picker (defaults to EricPathPickerModes.OPEN_FILE_MODE)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
205 @type EricPathPickerModes (optional)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
206 @param pathlibPath initial path to be shown (defaults to None)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
207 @type pathlib.Path (optional)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
208 @param defaultDirectory default directory of the path picker selection
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
209 dialog (defaults to None)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
210 @type pathlib.Path (optional)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
211 @param filters list of file filters (defaults to None)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
212 @type list of str (optional)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
213 @return tuple containing the entered path and a flag indicating that the
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
214 user pressed the OK button
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
215 @rtype tuple of (pathlib.Path, bool)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
216 """
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
217 # step 1: setup of the dialog
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
218 dlg = EricPathPickerDialog(parent)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
219 if title:
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
220 dlg.setTitle(title)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
221 if label:
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
222 dlg.setLabelText(label)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
223 dlg.setPickerMode(mode)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
224 if pathlibPath:
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
225 dlg.setPickerPath(pathlibPath)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
226 if defaultDirectory:
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
227 dlg.setDefaultDirectory(defaultDirectory)
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
228 if filters is not None and len(filters) > 0:
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
229 dlg.setPickerFilters(";;".join(filters))
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
230
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
231 # step 2: show the dialog and get the result
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
232 if dlg.exec() == QDialog.DialogCode.Accepted:
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
233 ok = True
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
234 fpath = dlg.getText().strip()
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
235 else:
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
236 ok = False
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
237 fpath = ""
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
238
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
239 # step 3: return the result
a7cbf3d61498 EricPathPicker, EricPathPickerDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
240 return fpath, ok

eric ide

mercurial