src/eric7/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py

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

eric ide

mercurial