9 |
9 |
10 from __future__ import unicode_literals |
10 from __future__ import unicode_literals |
11 |
11 |
12 import os |
12 import os |
13 |
13 |
14 from PyQt5.QtCore import pyqtSlot |
14 from PyQt5.QtCore import pyqtSlot, QUrl |
15 from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QFileDialog, \ |
15 from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QFileDialog, \ |
16 QButtonGroup |
16 QButtonGroup |
17 |
17 |
18 from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter |
18 from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter |
19 |
19 |
20 from .Ui_FileDialogWizardDialog import Ui_FileDialogWizardDialog |
20 from .Ui_FileDialogWizardDialog import Ui_FileDialogWizardDialog |
21 |
21 |
22 import Globals |
22 import Globals |
23 |
23 |
24 |
24 |
25 # TODO: adjust this to Qt5 QFileDialog and Eric E5FileDialog |
|
26 class FileDialogWizardDialog(QDialog, Ui_FileDialogWizardDialog): |
25 class FileDialogWizardDialog(QDialog, Ui_FileDialogWizardDialog): |
27 """ |
26 """ |
28 Class implementing the color dialog wizard dialog. |
27 Class implementing the color dialog wizard dialog. |
29 |
28 |
30 It displays a dialog for entering the parameters |
29 It displays a dialog for entering the parameters for the |
31 for the QFileDialog code generator. |
30 E5FileDialog or QFileDialog code generator. |
32 """ |
31 """ |
33 def __init__(self, pyqtVariant, parent=None): |
32 def __init__(self, dialogVariant, parent=None): |
34 """ |
33 """ |
35 Constructor |
34 Constructor |
36 |
35 |
37 @param pyqtVariant variant of PyQt (integer; 0, 4 or 5) |
36 @param dialogVariant variant of the file dialog to be generated |
38 @param parent parent widget (QWidget) |
37 (-1 = E5FileDialog, 0 = unknown, 4 = PyQt4, 5 = PyQt5) |
|
38 @type int |
|
39 @param parent parent widget |
|
40 @type QWidget |
39 """ |
41 """ |
40 super(FileDialogWizardDialog, self).__init__(parent) |
42 super(FileDialogWizardDialog, self).__init__(parent) |
41 self.setupUi(self) |
43 self.setupUi(self) |
42 |
44 |
43 self.eStartWithCompleter = E5FileCompleter(self.eStartWith) |
45 self.eStartWithCompleter = E5FileCompleter(self.eStartWith) |
44 self.eWorkDirCompleter = E5DirCompleter(self.eWorkDir) |
46 self.eWorkDirCompleter = E5DirCompleter(self.eWorkDir) |
45 |
47 |
46 self.__pyqtVariant = pyqtVariant |
48 self.__dialogVariant = dialogVariant |
47 |
49 |
48 self.__typeButtonsGroup = QButtonGroup(self) |
50 self.__typeButtonsGroup = QButtonGroup(self) |
49 self.__typeButtonsGroup.setExclusive(True) |
51 self.__typeButtonsGroup.setExclusive(True) |
50 self.__typeButtonsGroup.addButton(self.rOpenFile, 1) |
52 self.__typeButtonsGroup.addButton(self.rOpenFile, 1) |
51 self.__typeButtonsGroup.addButton(self.rOpenFiles, 2) |
53 self.__typeButtonsGroup.addButton(self.rOpenFiles, 2) |
52 self.__typeButtonsGroup.addButton(self.rSaveFile, 3) |
54 self.__typeButtonsGroup.addButton(self.rSaveFile, 3) |
53 self.__typeButtonsGroup.addButton(self.rfOpenFile, 11) |
55 self.__typeButtonsGroup.addButton(self.rfOpenFile, 11) |
54 self.__typeButtonsGroup.addButton(self.rfOpenFiles, 12) |
56 self.__typeButtonsGroup.addButton(self.rfOpenFiles, 12) |
55 self.__typeButtonsGroup.addButton(self.rfSaveFile, 13) |
57 self.__typeButtonsGroup.addButton(self.rfSaveFile, 13) |
56 self.__typeButtonsGroup.addButton(self.rDirectory, 20) |
58 self.__typeButtonsGroup.addButton(self.rOpenFileUrl, 21) |
|
59 self.__typeButtonsGroup.addButton(self.rOpenFileUrls, 22) |
|
60 self.__typeButtonsGroup.addButton(self.rSaveFileUrl, 23) |
|
61 self.__typeButtonsGroup.addButton(self.rDirectory, 30) |
|
62 self.__typeButtonsGroup.addButton(self.rDirectoryUrl, 31) |
57 self.__typeButtonsGroup.buttonClicked[int].connect( |
63 self.__typeButtonsGroup.buttonClicked[int].connect( |
58 self.__toggleInitialFilterAndResult) |
64 self.__toggleInitialFilterAndResult) |
59 self.__toggleInitialFilterAndResult(1) |
65 self.__toggleInitialFilterAndResult(1) |
60 |
66 |
61 self.pyqtComboBox.addItems(["PyQt4", "PyQt5"]) |
67 self.__dialogVariant = dialogVariant |
62 self.__pyqtVariant = pyqtVariant |
68 if self.__dialogVariant == -1: |
63 if self.__pyqtVariant == 5: |
69 self.pyqtComboBox.addItems(["eric"]) |
64 self.pyqtComboBox.setCurrentIndex(1) |
70 self.setWindowTitle(self.tr("E5FileDialog Wizard")) |
|
71 self.pyqtComboBox.setCurrentIndex(0) |
|
72 self.pyqtComboBox.setEnabled(False) |
65 else: |
73 else: |
66 self.pyqtComboBox.setCurrentIndex(0) |
74 self.pyqtComboBox.addItems(["PyQt5", "PyQt4"]) |
|
75 self.setWindowTitle(self.tr("QFileDialog Wizard")) |
|
76 if self.__dialogVariant == 5: |
|
77 self.pyqtComboBox.setCurrentIndex(0) |
|
78 elif self.__dialogVariant == 4: |
|
79 self.pyqtComboBox.setCurrentIndex(1) |
|
80 else: |
|
81 self.pyqtComboBox.setCurrentIndex(0) |
67 |
82 |
68 self.rSaveFile.toggled[bool].connect(self.__toggleConfirmCheckBox) |
83 self.rSaveFile.toggled[bool].connect(self.__toggleConfirmCheckBox) |
69 self.rfSaveFile.toggled[bool].connect(self.__toggleConfirmCheckBox) |
84 self.rfSaveFile.toggled[bool].connect(self.__toggleConfirmCheckBox) |
|
85 self.rSaveFileUrl.toggled[bool].connect(self.__toggleConfirmCheckBox) |
70 self.rDirectory.toggled[bool].connect(self.__toggleGroupsAndTest) |
86 self.rDirectory.toggled[bool].connect(self.__toggleGroupsAndTest) |
|
87 self.rDirectoryUrl.toggled[bool].connect(self.__toggleGroupsAndTest) |
71 self.cStartWith.toggled[bool].connect(self.__toggleGroupsAndTest) |
88 self.cStartWith.toggled[bool].connect(self.__toggleGroupsAndTest) |
72 self.cWorkDir.toggled[bool].connect(self.__toggleGroupsAndTest) |
89 self.cWorkDir.toggled[bool].connect(self.__toggleGroupsAndTest) |
73 self.cFilters.toggled[bool].connect(self.__toggleGroupsAndTest) |
90 self.cFilters.toggled[bool].connect(self.__toggleGroupsAndTest) |
74 |
91 |
75 self.bTest = self.buttonBox.addButton( |
92 self.bTest = self.buttonBox.addButton( |
94 """ |
111 """ |
95 Private slot to setup the dialog for the selected PyQt variant. |
112 Private slot to setup the dialog for the selected PyQt variant. |
96 |
113 |
97 @param txt text of the selected combo box entry (string) |
114 @param txt text of the selected combo box entry (string) |
98 """ |
115 """ |
99 self.rfOpenFile.setEnabled(txt == "PyQt4") |
116 self.rfOpenFile.setEnabled(txt in ("eric", "PyQt4")) |
100 self.rfOpenFiles.setEnabled(txt == "PyQt4") |
117 self.rfOpenFiles.setEnabled(txt in ("eric", "PyQt4")) |
101 self.rfSaveFile.setEnabled(txt == "PyQt4") |
118 self.rfSaveFile.setEnabled(txt in ("eric", "PyQt4")) |
|
119 |
|
120 self.rOpenFileUrl.setEnabled(txt == "PyQt5") |
|
121 self.rOpenFileUrls.setEnabled(txt == "PyQt5") |
|
122 self.rSaveFileUrl.setEnabled(txt == "PyQt5") |
|
123 self.rDirectoryUrl.setEnabled(txt == "PyQt5") |
102 |
124 |
103 if txt == "PyQt5": |
125 if txt == "PyQt5": |
104 if self.rfOpenFile.isChecked(): |
126 if self.rfOpenFile.isChecked(): |
105 self.rOpenFile.setChecked(True) |
127 self.rOpenFile.setChecked(True) |
106 elif self.rfOpenFiles.isChecked(): |
128 elif self.rfOpenFiles.isChecked(): |
107 self.rOpenFiles.setChecked(True) |
129 self.rOpenFiles.setChecked(True) |
108 elif self.rfSaveFile.isChecked(): |
130 elif self.rfSaveFile.isChecked(): |
109 self.rSaveFile.setChecked(True) |
131 self.rSaveFile.setChecked(True) |
110 |
132 else: |
111 self.__pyqtVariant = 5 if txt == "PyQt5" else 4 |
133 if self.rOpenFileUrl.isChecked(): |
|
134 self.rOpenFile.setChecked(True) |
|
135 if self.rOpenFileUrls.isChecked(): |
|
136 self.rOpenFiles.setChecked(True) |
|
137 if self.rSaveFileUrl.isChecked(): |
|
138 self.rSaveFile.setChecked(True) |
|
139 if self.rDirectoryUrl.isChecked(): |
|
140 self.rDirectory.setChecked(True) |
|
141 |
|
142 if txt == "eric": |
|
143 self.__dialogVariant = -1 |
|
144 elif txt == "PyQt5": |
|
145 self.__dialogVariant = 5 |
|
146 elif txt == "PyQt4": |
|
147 self.__dialogVariant = 4 |
|
148 else: |
|
149 # default is PyQt5 |
|
150 self.__dialogVariant = 5 |
112 |
151 |
113 self.__toggleInitialFilterAndResult( |
152 self.__toggleInitialFilterAndResult( |
114 self.__typeButtonsGroup.checkedId()) |
153 self.__typeButtonsGroup.checkedId()) |
115 |
154 |
116 def on_buttonBox_clicked(self, button): |
155 def on_buttonBox_clicked(self, button): |
131 if not self.cSymlinks.isChecked(): |
170 if not self.cSymlinks.isChecked(): |
132 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) |
171 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) |
133 else: |
172 else: |
134 options = QFileDialog.Options() |
173 options = QFileDialog.Options() |
135 options = self.__adjustOptions(options) |
174 options = self.__adjustOptions(options) |
136 if self.rOpenFile.isChecked() and self.__pyqtVariant == 4: |
175 QFileDialog.getOpenFileName( |
137 try: |
176 None, |
138 QFileDialog.getOpenFileName( |
177 self.eCaption.text(), |
139 None, |
178 self.eStartWith.text(), |
140 self.eCaption.text(), |
179 self.eFilters.text(), |
141 self.eStartWith.text(), |
180 self.eInitialFilter.text(), |
142 self.eFilters.text(), |
181 options) |
143 options) |
182 elif self.rOpenFileUrl.isChecked(): |
144 except TypeError: |
183 if not self.cSymlinks.isChecked(): |
145 QFileDialog.getOpenFileName( |
184 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) |
146 None, |
185 else: |
147 self.eCaption.text(), |
186 options = QFileDialog.Options() |
148 self.eStartWith.text(), |
187 options = self.__adjustOptions(options) |
149 self.eFilters.text(), |
188 try: |
150 self.eInitialFilter.text(), |
189 QFileDialog.getOpenFileUrl( |
151 options) |
190 None, |
152 else: |
191 self.eCaption.text(), |
153 try: |
192 QUrl(self.eStartWith.text()), |
154 QFileDialog.getOpenFileNameAndFilter( |
193 self.eFilters.text(), |
155 None, |
194 self.eInitialFilter.text(), |
156 self.eCaption.text(), |
195 options, |
157 self.eStartWith.text(), |
196 self.schemesEdit.text().split()) |
158 self.eFilters.text(), |
197 except TypeError: |
159 self.eInitialFilter.text(), |
198 # PyQt5 < 5.13.0 contains an error |
160 options) |
199 QFileDialog.getOpenFileUrl( |
161 except AttributeError: |
200 None, |
162 QFileDialog.getOpenFileName( |
201 self.eCaption.text(), |
163 None, |
202 self.eStartWith.text(), |
164 self.eCaption.text(), |
203 self.eFilters.text(), |
165 self.eStartWith.text(), |
204 self.eInitialFilter.text(), |
166 self.eFilters.text(), |
205 options, |
167 self.eInitialFilter.text(), |
206 self.schemesEdit.text().split()) |
168 options) |
|
169 elif self.rOpenFiles.isChecked() or self.rfOpenFiles.isChecked(): |
207 elif self.rOpenFiles.isChecked() or self.rfOpenFiles.isChecked(): |
170 if not self.cSymlinks.isChecked(): |
208 if not self.cSymlinks.isChecked(): |
171 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) |
209 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) |
172 else: |
210 else: |
173 options = QFileDialog.Options() |
211 options = QFileDialog.Options() |
174 options = self.__adjustOptions(options) |
212 options = self.__adjustOptions(options) |
175 if self.rOpenFiles.isChecked() and self.__pyqtVariant == 4: |
213 QFileDialog.getOpenFileNames( |
176 try: |
214 None, |
177 QFileDialog.getOpenFileNames( |
215 self.eCaption.text(), |
178 None, |
216 self.eStartWith.text(), |
179 self.eCaption.text(), |
217 self.eFilters.text(), |
180 self.eStartWith.text(), |
218 self.eInitialFilter.text(), |
181 self.eFilters.text(), |
219 options) |
182 options) |
220 elif self.rOpenFileUrls.isChecked(): |
183 except TypeError: |
221 if not self.cSymlinks.isChecked(): |
184 QFileDialog.getOpenFileNames( |
222 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) |
185 None, |
223 else: |
186 self.eCaption.text(), |
224 options = QFileDialog.Options() |
187 self.eStartWith.text(), |
225 options = self.__adjustOptions(options) |
188 self.eFilters.text(), |
226 try: |
189 self.eInitialFilter.text(), |
227 QFileDialog.getOpenFileUrls( |
190 options) |
228 None, |
191 else: |
229 self.eCaption.text(), |
192 try: |
230 QUrl(self.eStartWith.text()), |
193 QFileDialog.getOpenFileNamesAndFilter( |
231 self.eFilters.text(), |
194 None, |
232 self.eInitialFilter.text(), |
195 self.eCaption.text(), |
233 options, |
196 self.eStartWith.text(), |
234 self.schemesEdit.text().split()) |
197 self.eFilters.text(), |
235 except TypeError: |
198 self.eInitialFilter.text(), |
236 # PyQt5 < 5.13.0 contains an error |
199 options) |
237 QFileDialog.getOpenFileUrls( |
200 except AttributeError: |
238 None, |
201 QFileDialog.getOpenFileNames( |
239 self.eCaption.text(), |
202 None, |
240 self.eStartWith.text(), |
203 self.eCaption.text(), |
241 self.eFilters.text(), |
204 self.eStartWith.text(), |
242 self.eInitialFilter.text(), |
205 self.eFilters.text(), |
243 options, |
206 self.eInitialFilter.text(), |
244 self.schemesEdit.text().split()) |
207 options) |
|
208 elif self.rSaveFile.isChecked() or self.rfSaveFile.isChecked(): |
245 elif self.rSaveFile.isChecked() or self.rfSaveFile.isChecked(): |
209 if not self.cSymlinks.isChecked(): |
246 if not self.cSymlinks.isChecked(): |
210 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) |
247 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) |
211 else: |
248 else: |
212 options = QFileDialog.Options() |
249 options = QFileDialog.Options() |
213 options = self.__adjustOptions(options) |
250 options = self.__adjustOptions(options) |
214 if self.rSaveFile.isChecked() and self.__pyqtVariant == 4: |
251 QFileDialog.getSaveFileName( |
215 try: |
252 None, |
216 QFileDialog.getSaveFileName( |
253 self.eCaption.text(), |
217 None, |
254 self.eStartWith.text(), |
218 self.eCaption.text(), |
255 self.eFilters.text(), |
219 self.eStartWith.text(), |
256 self.eInitialFilter.text(), |
220 self.eFilters.text(), |
257 options) |
221 options) |
258 elif self.rSaveFileUrl.isChecked(): |
222 except TypeError: |
259 if not self.cSymlinks.isChecked(): |
223 QFileDialog.getSaveFileName( |
260 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) |
224 None, |
261 else: |
225 self.eCaption.text(), |
262 options = QFileDialog.Options() |
226 self.eStartWith.text(), |
263 options = self.__adjustOptions(options) |
227 self.eFilters.text(), |
264 try: |
228 self.eInitialFilter.text(), |
265 QFileDialog.getSaveFileUrl( |
229 options) |
266 None, |
230 else: |
267 self.eCaption.text(), |
231 try: |
268 QUrl(self.eStartWith.text()), |
232 QFileDialog.getSaveFileNameAndFilter( |
269 self.eFilters.text(), |
233 None, |
270 self.eInitialFilter.text(), |
234 self.eCaption.text(), |
271 options, |
235 self.eStartWith.text(), |
272 self.schemesEdit.text().split()) |
236 self.eFilters.text(), |
273 except TypeError: |
237 self.eInitialFilter.text(), |
274 # PyQt5 < 5.13.0 contains an error |
238 options) |
275 QFileDialog.getSaveFileUrl( |
239 except AttributeError: |
276 None, |
240 QFileDialog.getSaveFileName( |
277 self.eCaption.text(), |
241 None, |
278 self.eStartWith.text(), |
242 self.eCaption.text(), |
279 self.eFilters.text(), |
243 self.eStartWith.text(), |
280 self.eInitialFilter.text(), |
244 self.eFilters.text(), |
281 options, |
245 self.eInitialFilter.text(), |
282 self.schemesEdit.text().split()) |
246 options) |
|
247 elif self.rDirectory.isChecked(): |
283 elif self.rDirectory.isChecked(): |
248 options = QFileDialog.Options() |
284 options = QFileDialog.Options() |
249 if not self.cSymlinks.isChecked(): |
285 if not self.cSymlinks.isChecked(): |
250 options |= QFileDialog.Options(QFileDialog.DontResolveSymlinks) |
286 options |= QFileDialog.Options(QFileDialog.DontResolveSymlinks) |
251 if self.cDirOnly.isChecked(): |
287 if self.cDirOnly.isChecked(): |
256 QFileDialog.getExistingDirectory( |
292 QFileDialog.getExistingDirectory( |
257 None, |
293 None, |
258 self.eCaption.text(), |
294 self.eCaption.text(), |
259 self.eWorkDir.text(), |
295 self.eWorkDir.text(), |
260 options) |
296 options) |
|
297 elif self.rDirectoryUrl.isChecked(): |
|
298 options = QFileDialog.Options() |
|
299 if not self.cSymlinks.isChecked(): |
|
300 options |= QFileDialog.Options(QFileDialog.DontResolveSymlinks) |
|
301 if self.cDirOnly.isChecked(): |
|
302 options |= QFileDialog.Options(QFileDialog.ShowDirsOnly) |
|
303 else: |
|
304 options |= QFileDialog.Options(QFileDialog.Option(0)) |
|
305 options = self.__adjustOptions(options) |
|
306 try: |
|
307 QFileDialog.getExistingDirectoryUrl( |
|
308 None, |
|
309 self.eCaption.text(), |
|
310 QUrl(self.eWorkDir.text()), |
|
311 options, |
|
312 self.schemesEdit.text().split()) |
|
313 except TypeError: |
|
314 # PyQt5 < 5.13.0 contains an error |
|
315 QFileDialog.getExistingDirectoryUrl( |
|
316 None, |
|
317 self.eCaption.text(), |
|
318 self.eWorkDir.text(), |
|
319 options, |
|
320 self.schemesEdit.text().split()) |
261 |
321 |
262 def __toggleConfirmCheckBox(self): |
322 def __toggleConfirmCheckBox(self): |
263 """ |
323 """ |
264 Private slot to enable/disable the confirmation check box. |
324 Private slot to enable/disable the confirmation check box. |
265 """ |
325 """ |
266 self.cConfirmOverwrite.setEnabled( |
326 self.cConfirmOverwrite.setEnabled( |
267 self.rSaveFile.isChecked() or self.rfSaveFile.isChecked()) |
327 self.rSaveFile.isChecked() or self.rfSaveFile.isChecked() or |
|
328 self.rSaveFileUrl.isChecked()) |
268 |
329 |
269 def __toggleGroupsAndTest(self): |
330 def __toggleGroupsAndTest(self): |
270 """ |
331 """ |
271 Private slot to enable/disable certain groups and the test button. |
332 Private slot to enable/disable certain groups and the test button. |
272 """ |
333 """ |
273 if self.rDirectory.isChecked(): |
334 if self.rDirectory.isChecked() or self.rDirectoryUrl.isChecked(): |
274 self.filePropertiesGroup.setEnabled(False) |
335 self.filePropertiesGroup.setEnabled(False) |
275 self.dirPropertiesGroup.setEnabled(True) |
336 self.dirPropertiesGroup.setEnabled(True) |
276 self.bTest.setDisabled(self.cWorkDir.isChecked()) |
337 self.bTest.setDisabled(self.cWorkDir.isChecked()) |
277 else: |
338 else: |
278 self.filePropertiesGroup.setEnabled(True) |
339 self.filePropertiesGroup.setEnabled(True) |
336 nameVariable = "dirName" |
399 nameVariable = "dirName" |
337 else: |
400 else: |
338 nameVariable = "res" |
401 nameVariable = "res" |
339 filterVariable = self.eFilterVariable.text() |
402 filterVariable = self.eFilterVariable.text() |
340 if not filterVariable: |
403 if not filterVariable: |
341 if (self.__pyqtVariant == 4 and |
404 if (self.__dialogVariant in (-1, 4) and |
342 self.__typeButtonsGroup.checkedButton() in [ |
405 self.__typeButtonsGroup.checkedButton() in [ |
343 self.rfOpenFile, self.rfOpenFiles, self.rfSaveFile]) or \ |
406 self.rfOpenFile, self.rfOpenFiles, self.rfSaveFile]) or \ |
344 (self.__pyqtVariant == 5 and |
407 (self.__dialogVariant == 5 and |
345 self.__typeButtonsGroup.checkedButton() in [ |
408 self.__typeButtonsGroup.checkedButton() in [ |
346 self.rOpenFile, self.rOpenFiles, self.rSaveFile]): |
409 self.rOpenFile, self.rOpenFiles, self.rSaveFile]): |
347 filterVariable = ", selectedFilter" |
410 filterVariable = ", selectedFilter" |
348 else: |
411 else: |
349 filterVariable = "" |
412 filterVariable = "" |
350 else: |
413 else: |
351 filterVariable = ", " + filterVariable |
414 filterVariable = ", " + filterVariable |
352 |
415 |
353 code = '{0}{1} = QFileDialog.'.format(nameVariable, filterVariable) |
416 if self.__dialogVariant == -1: |
354 if self.rOpenFile.isChecked() or self.rfOpenFile.isChecked(): |
417 dialogType = "E5FileDialog" |
|
418 else: |
|
419 dialogType = "QFileDialog" |
|
420 |
|
421 code = '{0}{1} = {2}.'.format(nameVariable, filterVariable, dialogType) |
|
422 if self.rOpenFile.isChecked() or self.rfOpenFile.isChecked() or \ |
|
423 self.rOpenFileUrl.isChecked(): |
355 if self.rOpenFile.isChecked(): |
424 if self.rOpenFile.isChecked(): |
356 code += 'getOpenFileName({0}{1}'.format(os.linesep, istring) |
425 code += 'getOpenFileName({0}{1}'.format(os.linesep, istring) |
|
426 elif self.rOpenFileUrl.isChecked(): |
|
427 code += 'getOpenFileUrl({0}{1}'.format(os.linesep, istring) |
357 else: |
428 else: |
358 code += 'getOpenFileNameAndFilter({0}{1}'.format( |
429 code += 'getOpenFileNameAndFilter({0}{1}'.format( |
359 os.linesep, istring) |
430 os.linesep, istring) |
360 code += '{0},{1}{2}'.format(parent, os.linesep, istring) |
431 code += '{0},{1}{2}'.format(parent, os.linesep, istring) |
361 if not self.eCaption.text(): |
432 if not self.eCaption.text(): |
362 code += '"",{0}{1}'.format(os.linesep, istring) |
433 code += '"",{0}{1}'.format(os.linesep, istring) |
363 else: |
434 else: |
364 code += 'self.tr("{0}"),{1}{2}'.format( |
435 code += 'self.tr("{0}"),{1}{2}'.format( |
365 self.eCaption.text(), os.linesep, istring) |
436 self.eCaption.text(), os.linesep, istring) |
366 if not self.eStartWith.text(): |
437 if self.rOpenFileUrl.isChecked(): |
367 code += '"",{0}{1}'.format(os.linesep, istring) |
438 if not self.eStartWith.text(): |
368 else: |
439 code += 'QUrl(),{0}{1}'.format(os.linesep, istring) |
369 if self.cStartWith.isChecked(): |
440 else: |
370 fmt = '{0},{1}{2}' |
441 if self.cStartWith.isChecked(): |
371 else: |
442 fmt = '{0},{1}{2}' |
372 fmt = 'self.tr("{0}"),{1}{2}' |
443 else: |
373 code += fmt.format(self.eStartWith.text(), os.linesep, istring) |
444 fmt = 'QUrl("{0}"),{1}{2}' |
|
445 code += fmt.format(self.eStartWith.text(), os.linesep, |
|
446 istring) |
|
447 else: |
|
448 if not self.eStartWith.text(): |
|
449 code += '"",{0}{1}'.format(os.linesep, istring) |
|
450 else: |
|
451 if self.cStartWith.isChecked(): |
|
452 fmt = '{0},{1}{2}' |
|
453 else: |
|
454 fmt = '"{0}",{1}{2}' |
|
455 code += fmt.format(self.eStartWith.text(), os.linesep, |
|
456 istring) |
374 if self.eFilters.text() == "": |
457 if self.eFilters.text() == "": |
375 code += '""' |
458 code += '""' |
376 else: |
459 else: |
377 if self.cFilters.isChecked(): |
460 if self.cFilters.isChecked(): |
378 fmt = '{0}' |
461 fmt = '{0}' |
379 else: |
462 else: |
380 fmt = 'self.tr("{0}")' |
463 fmt = 'self.tr("{0}")' |
381 code += fmt.format(self.eFilters.text()) |
464 code += fmt.format(self.eFilters.text()) |
382 if self.rfOpenFile.isChecked() or self.__pyqtVariant == 5: |
465 if self.rfOpenFile.isChecked() or self.__dialogVariant == 5: |
383 if self.eInitialFilter.text() == "": |
466 if self.eInitialFilter.text() == "": |
384 initialFilter = "None" |
467 initialFilter = "None" |
385 else: |
468 else: |
386 if self.cInitialFilter.isChecked(): |
469 if self.cInitialFilter.isChecked(): |
387 fmt = '{0}' |
470 fmt = '{0}' |
389 fmt = 'self.tr("{0}")' |
472 fmt = 'self.tr("{0}")' |
390 initialFilter = fmt.format(self.eInitialFilter.text()) |
473 initialFilter = fmt.format(self.eInitialFilter.text()) |
391 code += ',{0}{1}{2}'.format(os.linesep, istring, initialFilter) |
474 code += ',{0}{1}{2}'.format(os.linesep, istring, initialFilter) |
392 if not self.cSymlinks.isChecked(): |
475 if not self.cSymlinks.isChecked(): |
393 code += \ |
476 code += \ |
394 ',{0}{1}QFileDialog.Options(' \ |
477 ',{0}{1}{2}.Options(' \ |
395 'QFileDialog.DontResolveSymlinks)' \ |
478 '{2}.DontResolveSymlinks)' \ |
396 .format(os.linesep, istring) |
479 .format(os.linesep, istring, dialogType) |
|
480 if self.rOpenFileUrl.isChecked() and bool(self.schemesEdit.text()): |
|
481 code += \ |
|
482 ',{0}{1}{2}'.format(os.linesep, istring, |
|
483 self.__prepareSchemesList()) |
397 code += '){0}'.format(estring) |
484 code += '){0}'.format(estring) |
398 elif self.rOpenFiles.isChecked() or self.rfOpenFiles.isChecked(): |
485 elif self.rOpenFiles.isChecked() or self.rfOpenFiles.isChecked() or \ |
|
486 self.rOpenFileUrls.isChecked(): |
399 if self.rOpenFiles.isChecked(): |
487 if self.rOpenFiles.isChecked(): |
400 code += 'getOpenFileNames({0}{1}'.format(os.linesep, istring) |
488 code += 'getOpenFileNames({0}{1}'.format(os.linesep, istring) |
|
489 elif self.rOpenFileUrls.isChecked(): |
|
490 code += 'getOpenFileUrls({0}{1}'.format(os.linesep, istring) |
401 else: |
491 else: |
402 code += 'getOpenFileNamesAndFilter({0}{1}'.format( |
492 code += 'getOpenFileNamesAndFilter({0}{1}'.format( |
403 os.linesep, istring) |
493 os.linesep, istring) |
404 code += '{0},{1}{2}'.format(parent, os.linesep, istring) |
494 code += '{0},{1}{2}'.format(parent, os.linesep, istring) |
405 if not self.eCaption.text(): |
495 if not self.eCaption.text(): |
406 code += '"",{0}{1}'.format(os.linesep, istring) |
496 code += '"",{0}{1}'.format(os.linesep, istring) |
407 else: |
497 else: |
408 code += 'self.tr("{0}"),{1}{2}'.format( |
498 code += 'self.tr("{0}"),{1}{2}'.format( |
409 self.eCaption.text(), os.linesep, istring) |
499 self.eCaption.text(), os.linesep, istring) |
410 if not self.eStartWith.text(): |
500 if self.rOpenFileUrls.isChecked(): |
411 code += '"",{0}{1}'.format(os.linesep, istring) |
501 if not self.eStartWith.text(): |
412 else: |
502 code += 'QUrl(),{0}{1}'.format(os.linesep, istring) |
413 if self.cStartWith.isChecked(): |
503 else: |
414 fmt = '{0},{1}{2}' |
504 if self.cStartWith.isChecked(): |
415 else: |
505 fmt = '{0},{1}{2}' |
416 fmt = 'self.tr("{0}"),{1}{2}' |
506 else: |
417 code += fmt.format(self.eStartWith.text(), os.linesep, istring) |
507 fmt = 'QUrl("{0}"),{1}{2}' |
|
508 code += fmt.format(self.eStartWith.text(), os.linesep, |
|
509 istring) |
|
510 else: |
|
511 if not self.eStartWith.text(): |
|
512 code += '"",{0}{1}'.format(os.linesep, istring) |
|
513 else: |
|
514 if self.cStartWith.isChecked(): |
|
515 fmt = '{0},{1}{2}' |
|
516 else: |
|
517 fmt = '"{0}",{1}{2}' |
|
518 code += fmt.format(self.eStartWith.text(), os.linesep, |
|
519 istring) |
418 if not self.eFilters.text(): |
520 if not self.eFilters.text(): |
419 code += '""' |
521 code += '""' |
420 else: |
522 else: |
421 if self.cFilters.isChecked(): |
523 if self.cFilters.isChecked(): |
422 fmt = '{0}' |
524 fmt = '{0}' |
423 else: |
525 else: |
424 fmt = 'self.tr("{0}")' |
526 fmt = 'self.tr("{0}")' |
425 code += fmt.format(self.eFilters.text()) |
527 code += fmt.format(self.eFilters.text()) |
426 if self.rfOpenFiles.isChecked() or self.__pyqtVariant == 5: |
528 if self.rfOpenFiles.isChecked() or self.__dialogVariant == 5: |
427 if self.eInitialFilter.text() == "": |
529 if self.eInitialFilter.text() == "": |
428 initialFilter = "None" |
530 initialFilter = "None" |
429 else: |
531 else: |
430 if self.cInitialFilter.isChecked(): |
532 if self.cInitialFilter.isChecked(): |
431 fmt = '{0}' |
533 fmt = '{0}' |
433 fmt = 'self.tr("{0}")' |
535 fmt = 'self.tr("{0}")' |
434 initialFilter = fmt.format(self.eInitialFilter.text()) |
536 initialFilter = fmt.format(self.eInitialFilter.text()) |
435 code += ',{0}{1}{2}'.format(os.linesep, istring, initialFilter) |
537 code += ',{0}{1}{2}'.format(os.linesep, istring, initialFilter) |
436 if not self.cSymlinks.isChecked(): |
538 if not self.cSymlinks.isChecked(): |
437 code += \ |
539 code += \ |
438 ',{0}{1}QFileDialog.Options(' \ |
540 ',{0}{1}{2}.Options(' \ |
439 'QFileDialog.DontResolveSymlinks)' \ |
541 '{2}.DontResolveSymlinks)' \ |
440 .format(os.linesep, istring) |
542 .format(os.linesep, istring, dialogType) |
|
543 if self.rOpenFileUrls.isChecked() and \ |
|
544 bool(self.schemesEdit.text()): |
|
545 code += \ |
|
546 ',{0}{1}{2}'.format(os.linesep, istring, |
|
547 self.__prepareSchemesList()) |
441 code += '){0}'.format(estring) |
548 code += '){0}'.format(estring) |
442 elif self.rSaveFile.isChecked() or self.rfSaveFile.isChecked(): |
549 elif self.rSaveFile.isChecked() or self.rfSaveFile.isChecked() or \ |
|
550 self.rSaveFileUrl.isChecked(): |
443 if self.rSaveFile.isChecked(): |
551 if self.rSaveFile.isChecked(): |
444 code += 'getSaveFileName({0}{1}'.format(os.linesep, istring) |
552 code += 'getSaveFileName({0}{1}'.format(os.linesep, istring) |
|
553 elif self.rSaveFileUrl.isChecked(): |
|
554 code += 'getSaveFileUrl({0}{1}'.format(os.linesep, istring) |
445 else: |
555 else: |
446 code += 'getSaveFileNameAndFilter({0}{1}'.format( |
556 code += 'getSaveFileNameAndFilter({0}{1}'.format( |
447 os.linesep, istring) |
557 os.linesep, istring) |
448 code += '{0},{1}{2}'.format(parent, os.linesep, istring) |
558 code += '{0},{1}{2}'.format(parent, os.linesep, istring) |
449 if not self.eCaption.text(): |
559 if not self.eCaption.text(): |
450 code += '"",{0}{1}'.format(os.linesep, istring) |
560 code += '"",{0}{1}'.format(os.linesep, istring) |
451 else: |
561 else: |
452 code += 'self.tr("{0}"),{1}{2}'.format( |
562 code += 'self.tr("{0}"),{1}{2}'.format( |
453 self.eCaption.text(), os.linesep, istring) |
563 self.eCaption.text(), os.linesep, istring) |
454 if not self.eStartWith.text(): |
564 if self.rSaveFileUrl.isChecked(): |
455 code += '"",{0}{1}'.format(os.linesep, istring) |
565 if not self.eStartWith.text(): |
456 else: |
566 code += 'QUrl(),{0}{1}'.format(os.linesep, istring) |
457 if self.cStartWith.isChecked(): |
567 else: |
458 fmt = '{0},{1}{2}' |
568 if self.cStartWith.isChecked(): |
459 else: |
569 fmt = '{0},{1}{2}' |
460 fmt = 'self.tr("{0}"),{1}{2}' |
570 else: |
461 code += fmt.format(self.eStartWith.text(), os.linesep, istring) |
571 fmt = 'QUrl("{0}"),{1}{2}' |
|
572 code += fmt.format(self.eStartWith.text(), os.linesep, |
|
573 istring) |
|
574 else: |
|
575 if not self.eStartWith.text(): |
|
576 code += '"",{0}{1}'.format(os.linesep, istring) |
|
577 else: |
|
578 if self.cStartWith.isChecked(): |
|
579 fmt = '{0},{1}{2}' |
|
580 else: |
|
581 fmt = '"{0}",{1}{2}' |
|
582 code += fmt.format(self.eStartWith.text(), os.linesep, |
|
583 istring) |
462 if not self.eFilters.text(): |
584 if not self.eFilters.text(): |
463 code += '""' |
585 code += '""' |
464 else: |
586 else: |
465 if self.cFilters.isChecked(): |
587 if self.cFilters.isChecked(): |
466 fmt = '{0}' |
588 fmt = '{0}' |
467 else: |
589 else: |
468 fmt = 'self.tr("{0}")' |
590 fmt = 'self.tr("{0}")' |
469 code += fmt.format(self.eFilters.text()) |
591 code += fmt.format(self.eFilters.text()) |
470 if self.rfSaveFile.isChecked() or self.__pyqtVariant == 5: |
592 if self.rfSaveFile.isChecked() or self.__dialogVariant == 5: |
471 if self.eInitialFilter.text() == "": |
593 if self.eInitialFilter.text() == "": |
472 initialFilter = "None" |
594 initialFilter = "None" |
473 else: |
595 else: |
474 if self.cInitialFilter.isChecked(): |
596 if self.cInitialFilter.isChecked(): |
475 fmt = '{0}' |
597 fmt = '{0}' |
477 fmt = 'self.tr("{0}")' |
599 fmt = 'self.tr("{0}")' |
478 initialFilter = fmt.format(self.eInitialFilter.text()) |
600 initialFilter = fmt.format(self.eInitialFilter.text()) |
479 code += ',{0}{1}{2}'.format(os.linesep, istring, initialFilter) |
601 code += ',{0}{1}{2}'.format(os.linesep, istring, initialFilter) |
480 if (not self.cSymlinks.isChecked()) or \ |
602 if (not self.cSymlinks.isChecked()) or \ |
481 (not self.cConfirmOverwrite.isChecked()): |
603 (not self.cConfirmOverwrite.isChecked()): |
482 code += ',{0}{1}QFileDialog.Options('.format( |
604 code += ',{0}{1}{2}.Options('.format( |
483 os.linesep, istring) |
605 os.linesep, istring, dialogType) |
484 if not self.cSymlinks.isChecked(): |
606 if not self.cSymlinks.isChecked(): |
485 code += 'QFileDialog.DontResolveSymlinks' |
607 code += '{0}.DontResolveSymlinks'.format(dialogType) |
486 if (not self.cSymlinks.isChecked()) and \ |
608 if (not self.cSymlinks.isChecked()) and \ |
487 (not self.cConfirmOverwrite.isChecked()): |
609 (not self.cConfirmOverwrite.isChecked()): |
488 code += ' | ' |
610 code += ' | ' |
489 if not self.cConfirmOverwrite.isChecked(): |
611 if not self.cConfirmOverwrite.isChecked(): |
490 code += 'QFileDialog.DontConfirmOverwrite' |
612 code += '{0}.DontConfirmOverwrite'.format(dialogType) |
491 code += ')' |
613 code += ')' |
|
614 if self.rSaveFileUrl.isChecked() and \ |
|
615 bool(self.schemesEdit.text()): |
|
616 code += \ |
|
617 ',{0}{1}{2}'.format(os.linesep, istring, |
|
618 self.__prepareSchemesList()) |
492 code += '){0}'.format(estring) |
619 code += '){0}'.format(estring) |
493 elif self.rDirectory.isChecked(): |
620 elif self.rDirectory.isChecked() or self.rDirectoryUrl.isChecked(): |
494 code += 'getExistingDirectory({0}{1}'.format(os.linesep, istring) |
621 if self.rDirectory.isChecked(): |
|
622 code += 'getExistingDirectory({0}{1}'.format( |
|
623 os.linesep, istring) |
|
624 else: |
|
625 code += 'getExistingDirectoryUrl({0}{1}'.format( |
|
626 os.linesep, istring) |
495 code += '{0},{1}{2}'.format(parent, os.linesep, istring) |
627 code += '{0},{1}{2}'.format(parent, os.linesep, istring) |
496 if not self.eCaption.text(): |
628 if not self.eCaption.text(): |
497 code += '"",{0}{1}'.format(os.linesep, istring) |
629 code += '"",{0}{1}'.format(os.linesep, istring) |
498 else: |
630 else: |
499 code += 'self.tr("{0}"),{1}{2}'.format( |
631 code += 'self.tr("{0}"),{1}{2}'.format( |
500 self.eCaption.text(), os.linesep, istring) |
632 self.eCaption.text(), os.linesep, istring) |
501 if not self.eWorkDir.text(): |
633 if self.rDirectoryUrl.isChecked(): |
502 code += '""' |
634 if not self.eWorkDir.text(): |
503 else: |
635 code += 'QUrl()' |
504 if self.cWorkDir.isChecked(): |
636 else: |
505 fmt = '{0}' |
637 if self.cWorkDir.isChecked(): |
506 else: |
638 fmt = '{0}' |
507 fmt = 'self.tr("{0}")' |
639 else: |
508 code += fmt.format(self.eWorkDir.text()) |
640 fmt = 'QUrl("{0}")' |
509 code += ',{0}{1}QFileDialog.Options('.format(os.linesep, istring) |
641 code += fmt.format(self.eWorkDir.text()) |
510 if not self.cSymlinks.isChecked(): |
642 else: |
511 code += 'QFileDialog.DontResolveSymlinks | ' |
643 if not self.eWorkDir.text(): |
|
644 code += '""' |
|
645 else: |
|
646 if self.cWorkDir.isChecked(): |
|
647 fmt = '{0}' |
|
648 else: |
|
649 fmt = '"{0}"' |
|
650 code += fmt.format(self.eWorkDir.text()) |
|
651 code += ',{0}{1}{2}.Options('.format(os.linesep, istring, |
|
652 dialogType) |
|
653 if not self.cSymlinks.isChecked(): |
|
654 code += '{0}.DontResolveSymlinks | '.format(dialogType) |
512 if self.cDirOnly.isChecked(): |
655 if self.cDirOnly.isChecked(): |
513 code += 'QFileDialog.ShowDirsOnly' |
656 code += '{0}.ShowDirsOnly'.format(dialogType) |
514 else: |
657 else: |
515 code += 'QFileDialog.Option(0)' |
658 code += '{0}.Option(0)'.format(dialogType) |
516 code += ')){0}'.format(estring) |
659 code += ')' |
|
660 if self.rDirectoryUrl.isChecked(): |
|
661 code += \ |
|
662 ',{0}{1}{2}'.format(os.linesep, istring, |
|
663 self.__prepareSchemesList()) |
|
664 code += '){0}'.format(estring) |
517 |
665 |
518 return code |
666 return code |
|
667 |
|
668 def __prepareSchemesList(self): |
|
669 """ |
|
670 Private method to prepare the list of supported schemes. |
|
671 |
|
672 @return string representation of the supported schemes |
|
673 @rtype str |
|
674 """ |
|
675 return repr(self.schemesEdit.text().strip().split()) |