eric6/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py

branch
without_py2_and_pyqt4
changeset 7207
4ba7a9b26020
parent 7198
684261ef2165
child 7229
53054eb5b15a
equal deleted inserted replaced
7206:74666c6679af 7207:4ba7a9b26020
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)
285 Private slot to enable/disable the initial filter elements and the 346 Private slot to enable/disable the initial filter elements and the
286 results entries. 347 results entries.
287 348
288 @param checkedId id of the clicked button (integer) 349 @param checkedId id of the clicked button (integer)
289 """ 350 """
290 if (self.__pyqtVariant == 4 and checkedId in [11, 12, 13]) or \ 351 enable = (
291 (self.__pyqtVariant == 5 and checkedId in [1, 2, 3]): 352 (self.__dialogVariant in (-1, 4) and checkedId in [11, 12, 13]) or
292 enable = True 353 (self.__dialogVariant == 5 and checkedId in [1, 2, 3, 21, 22, 23])
293 else: 354 )
294 enable = False 355
295 self.lInitialFilter.setEnabled(enable) 356 self.lInitialFilter.setEnabled(enable)
296 self.eInitialFilter.setEnabled(enable) 357 self.eInitialFilter.setEnabled(enable)
297 self.cInitialFilter.setEnabled(enable) 358 self.cInitialFilter.setEnabled(enable)
298 359
299 self.lFilterVariable.setEnabled(enable) 360 self.lFilterVariable.setEnabled(enable)
300 self.eFilterVariable.setEnabled(enable) 361 self.eFilterVariable.setEnabled(enable)
362
363 self.urlPropertiesGroup.setEnabled(checkedId in (21, 22, 23, 31))
301 364
302 def getCode(self, indLevel, indString): 365 def getCode(self, indLevel, indString):
303 """ 366 """
304 Public method to get the source code for Qt4 and Qt5. 367 Public method to get the source code for Qt4 and Qt5.
305 368
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())

eric ide

mercurial