eric6/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py

branch
maintenance
changeset 8176
31965986ecd1
parent 8043
0acf98cd089a
parent 8143
2c730d5fd177
child 8273
698ae46f40a4
equal deleted inserted replaced
8153:e01ae92db699 8176:31965986ecd1
85 self.cStartWith.toggled[bool].connect(self.__toggleGroupsAndTest) 85 self.cStartWith.toggled[bool].connect(self.__toggleGroupsAndTest)
86 self.cWorkDir.toggled[bool].connect(self.__toggleGroupsAndTest) 86 self.cWorkDir.toggled[bool].connect(self.__toggleGroupsAndTest)
87 self.cFilters.toggled[bool].connect(self.__toggleGroupsAndTest) 87 self.cFilters.toggled[bool].connect(self.__toggleGroupsAndTest)
88 88
89 self.bTest = self.buttonBox.addButton( 89 self.bTest = self.buttonBox.addButton(
90 self.tr("Test"), QDialogButtonBox.ActionRole) 90 self.tr("Test"), QDialogButtonBox.ButtonRole.ActionRole)
91 91
92 msh = self.minimumSizeHint() 92 msh = self.minimumSizeHint()
93 self.resize(max(self.width(), msh.width()), msh.height()) 93 self.resize(max(self.width(), msh.width()), msh.height())
94 94
95 def __adjustOptions(self, options): 95 def __adjustOptions(self, options):
98 98
99 @param options file dialog options (QFileDialog.Options) 99 @param options file dialog options (QFileDialog.Options)
100 @return modified options (QFileDialog.Options) 100 @return modified options (QFileDialog.Options)
101 """ 101 """
102 if Globals.isLinuxPlatform(): 102 if Globals.isLinuxPlatform():
103 options |= QFileDialog.DontUseNativeDialog 103 options |= QFileDialog.Option.DontUseNativeDialog
104 return options 104 return options
105 105
106 @pyqtSlot(str) 106 @pyqtSlot(int)
107 def on_pyqtComboBox_currentIndexChanged(self, txt): 107 def on_pyqtComboBox_currentIndexChanged(self, index):
108 """ 108 """
109 Private slot to setup the dialog for the selected PyQt variant. 109 Private slot to setup the dialog for the selected PyQt variant.
110 110
111 @param txt text of the selected combo box entry (string) 111 @param index index of the current item
112 """ 112 @type int
113 """
114 txt = self.pyqtComboBox.itemText(index)
113 self.rfOpenFile.setEnabled(txt == "eric") 115 self.rfOpenFile.setEnabled(txt == "eric")
114 self.rfOpenFiles.setEnabled(txt == "eric") 116 self.rfOpenFiles.setEnabled(txt == "eric")
115 self.rfSaveFile.setEnabled(txt == "eric") 117 self.rfSaveFile.setEnabled(txt == "eric")
116 118
117 self.rOpenFileUrl.setEnabled(txt in ["PyQt5", "PyQt6"]) 119 self.rOpenFileUrl.setEnabled(txt in ["PyQt5", "PyQt6"])
163 """ 165 """
164 Private method to test the selected options. 166 Private method to test the selected options.
165 """ 167 """
166 if self.rOpenFile.isChecked() or self.rfOpenFile.isChecked(): 168 if self.rOpenFile.isChecked() or self.rfOpenFile.isChecked():
167 if not self.cSymlinks.isChecked(): 169 if not self.cSymlinks.isChecked():
168 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) 170 options = QFileDialog.Options(
171 QFileDialog.Option.DontResolveSymlinks)
169 else: 172 else:
170 options = QFileDialog.Options() 173 options = QFileDialog.Options()
171 options = self.__adjustOptions(options) 174 options = self.__adjustOptions(options)
172 QFileDialog.getOpenFileName( 175 QFileDialog.getOpenFileName(
173 None, 176 None,
176 self.eFilters.text(), 179 self.eFilters.text(),
177 self.eInitialFilter.text(), 180 self.eInitialFilter.text(),
178 options) 181 options)
179 elif self.rOpenFileUrl.isChecked(): 182 elif self.rOpenFileUrl.isChecked():
180 if not self.cSymlinks.isChecked(): 183 if not self.cSymlinks.isChecked():
181 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) 184 options = QFileDialog.Options(
185 QFileDialog.Option.DontResolveSymlinks)
182 else: 186 else:
183 options = QFileDialog.Options() 187 options = QFileDialog.Options()
184 options = self.__adjustOptions(options) 188 options = self.__adjustOptions(options)
185 try: 189 try:
186 QFileDialog.getOpenFileUrl( 190 QFileDialog.getOpenFileUrl(
201 self.eInitialFilter.text(), 205 self.eInitialFilter.text(),
202 options, 206 options,
203 self.schemesEdit.text().split()) 207 self.schemesEdit.text().split())
204 elif self.rOpenFiles.isChecked() or self.rfOpenFiles.isChecked(): 208 elif self.rOpenFiles.isChecked() or self.rfOpenFiles.isChecked():
205 if not self.cSymlinks.isChecked(): 209 if not self.cSymlinks.isChecked():
206 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) 210 options = QFileDialog.Options(
211 QFileDialog.Option.DontResolveSymlinks)
207 else: 212 else:
208 options = QFileDialog.Options() 213 options = QFileDialog.Options()
209 options = self.__adjustOptions(options) 214 options = self.__adjustOptions(options)
210 QFileDialog.getOpenFileNames( 215 QFileDialog.getOpenFileNames(
211 None, 216 None,
214 self.eFilters.text(), 219 self.eFilters.text(),
215 self.eInitialFilter.text(), 220 self.eInitialFilter.text(),
216 options) 221 options)
217 elif self.rOpenFileUrls.isChecked(): 222 elif self.rOpenFileUrls.isChecked():
218 if not self.cSymlinks.isChecked(): 223 if not self.cSymlinks.isChecked():
219 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) 224 options = QFileDialog.Options(
225 QFileDialog.Option.DontResolveSymlinks)
220 else: 226 else:
221 options = QFileDialog.Options() 227 options = QFileDialog.Options()
222 options = self.__adjustOptions(options) 228 options = self.__adjustOptions(options)
223 try: 229 try:
224 QFileDialog.getOpenFileUrls( 230 QFileDialog.getOpenFileUrls(
239 self.eInitialFilter.text(), 245 self.eInitialFilter.text(),
240 options, 246 options,
241 self.schemesEdit.text().split()) 247 self.schemesEdit.text().split())
242 elif self.rSaveFile.isChecked() or self.rfSaveFile.isChecked(): 248 elif self.rSaveFile.isChecked() or self.rfSaveFile.isChecked():
243 if not self.cSymlinks.isChecked(): 249 if not self.cSymlinks.isChecked():
244 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) 250 options = QFileDialog.Options(
251 QFileDialog.Option.DontResolveSymlinks)
245 else: 252 else:
246 options = QFileDialog.Options() 253 options = QFileDialog.Options()
247 options = self.__adjustOptions(options) 254 options = self.__adjustOptions(options)
248 QFileDialog.getSaveFileName( 255 QFileDialog.getSaveFileName(
249 None, 256 None,
252 self.eFilters.text(), 259 self.eFilters.text(),
253 self.eInitialFilter.text(), 260 self.eInitialFilter.text(),
254 options) 261 options)
255 elif self.rSaveFileUrl.isChecked(): 262 elif self.rSaveFileUrl.isChecked():
256 if not self.cSymlinks.isChecked(): 263 if not self.cSymlinks.isChecked():
257 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) 264 options = QFileDialog.Options(
265 QFileDialog.Option.DontResolveSymlinks)
258 else: 266 else:
259 options = QFileDialog.Options() 267 options = QFileDialog.Options()
260 options = self.__adjustOptions(options) 268 options = self.__adjustOptions(options)
261 try: 269 try:
262 QFileDialog.getSaveFileUrl( 270 QFileDialog.getSaveFileUrl(
278 options, 286 options,
279 self.schemesEdit.text().split()) 287 self.schemesEdit.text().split())
280 elif self.rDirectory.isChecked(): 288 elif self.rDirectory.isChecked():
281 options = QFileDialog.Options() 289 options = QFileDialog.Options()
282 if not self.cSymlinks.isChecked(): 290 if not self.cSymlinks.isChecked():
283 options |= QFileDialog.Options(QFileDialog.DontResolveSymlinks) 291 options |= QFileDialog.Options(
292 QFileDialog.Option.DontResolveSymlinks)
284 if self.cDirOnly.isChecked(): 293 if self.cDirOnly.isChecked():
285 options |= QFileDialog.Options(QFileDialog.ShowDirsOnly) 294 options |= QFileDialog.Options(QFileDialog.Option.ShowDirsOnly)
286 else: 295 else:
287 options |= QFileDialog.Options(QFileDialog.Option(0)) 296 options |= QFileDialog.Options(QFileDialog.Option(0))
288 options = self.__adjustOptions(options) 297 options = self.__adjustOptions(options)
289 QFileDialog.getExistingDirectory( 298 QFileDialog.getExistingDirectory(
290 None, 299 None,
292 self.eWorkDir.text(), 301 self.eWorkDir.text(),
293 options) 302 options)
294 elif self.rDirectoryUrl.isChecked(): 303 elif self.rDirectoryUrl.isChecked():
295 options = QFileDialog.Options() 304 options = QFileDialog.Options()
296 if not self.cSymlinks.isChecked(): 305 if not self.cSymlinks.isChecked():
297 options |= QFileDialog.Options(QFileDialog.DontResolveSymlinks) 306 options |= QFileDialog.Options(
307 QFileDialog.Option.DontResolveSymlinks)
298 if self.cDirOnly.isChecked(): 308 if self.cDirOnly.isChecked():
299 options |= QFileDialog.Options(QFileDialog.ShowDirsOnly) 309 options |= QFileDialog.Options(QFileDialog.Option.ShowDirsOnly)
300 else: 310 else:
301 options |= QFileDialog.Options(QFileDialog.Option(0)) 311 options |= QFileDialog.Options(QFileDialog.Option(0))
302 options = self.__adjustOptions(options) 312 options = self.__adjustOptions(options)
303 try: 313 try:
304 QFileDialog.getExistingDirectoryUrl( 314 QFileDialog.getExistingDirectoryUrl(
413 else: 423 else:
414 filterVariable = ", " + filterVariable 424 filterVariable = ", " + filterVariable
415 425
416 if self.__dialogVariant == -1: 426 if self.__dialogVariant == -1:
417 dialogType = "E5FileDialog" 427 dialogType = "E5FileDialog"
428 optionStr = ""
418 else: 429 else:
419 dialogType = "QFileDialog" 430 dialogType = "QFileDialog"
431 optionStr = ".Option"
420 432
421 code = '{0}{1} = {2}.'.format(nameVariable, filterVariable, dialogType) 433 code = '{0}{1} = {2}.'.format(nameVariable, filterVariable, dialogType)
422 if ( 434 if (
423 self.rOpenFile.isChecked() or 435 self.rOpenFile.isChecked() or
424 self.rfOpenFile.isChecked() or 436 self.rfOpenFile.isChecked() or
474 else: 486 else:
475 fmt = 'self.tr("{0}")' 487 fmt = 'self.tr("{0}")'
476 initialFilter = fmt.format(self.eInitialFilter.text()) 488 initialFilter = fmt.format(self.eInitialFilter.text())
477 code += ',{0}{1}{2}'.format(os.linesep, istring, initialFilter) 489 code += ',{0}{1}{2}'.format(os.linesep, istring, initialFilter)
478 if not self.cSymlinks.isChecked(): 490 if not self.cSymlinks.isChecked():
479 code += ',{0}{1}{2}.Options({2}.DontResolveSymlinks)'.format( 491 code += (
480 os.linesep, istring, dialogType) 492 ',{0}{1}{2}.Options({2}{3}.DontResolveSymlinks)'
493 .format(os.linesep, istring, dialogType, optionStr)
494 )
481 if self.rOpenFileUrl.isChecked() and bool(self.schemesEdit.text()): 495 if self.rOpenFileUrl.isChecked() and bool(self.schemesEdit.text()):
482 code += ',{0}{1}{2}'.format( 496 code += ',{0}{1}{2}'.format(
483 os.linesep, istring, self.__prepareSchemesList()) 497 os.linesep, istring, self.__prepareSchemesList())
484 code += '){0}'.format(estring) 498 code += '){0}'.format(estring)
485 elif ( 499 elif (
537 else: 551 else:
538 fmt = 'self.tr("{0}")' 552 fmt = 'self.tr("{0}")'
539 initialFilter = fmt.format(self.eInitialFilter.text()) 553 initialFilter = fmt.format(self.eInitialFilter.text())
540 code += ',{0}{1}{2}'.format(os.linesep, istring, initialFilter) 554 code += ',{0}{1}{2}'.format(os.linesep, istring, initialFilter)
541 if not self.cSymlinks.isChecked(): 555 if not self.cSymlinks.isChecked():
542 code += ',{0}{1}{2}.Options({2}.DontResolveSymlinks)'.format( 556 code += (
543 os.linesep, istring, dialogType) 557 ',{0}{1}{2}.Options({2}{3}.DontResolveSymlinks)'
558 .format(os.linesep, istring, dialogType, optionStr)
559 )
544 if ( 560 if (
545 self.rOpenFileUrls.isChecked() and 561 self.rOpenFileUrls.isChecked() and
546 bool(self.schemesEdit.text()) 562 bool(self.schemesEdit.text())
547 ): 563 ):
548 code += ',{0}{1}{2}'.format( 564 code += ',{0}{1}{2}'.format(
609 (not self.cConfirmOverwrite.isChecked()) 625 (not self.cConfirmOverwrite.isChecked())
610 ): 626 ):
611 code += ',{0}{1}{2}.Options('.format( 627 code += ',{0}{1}{2}.Options('.format(
612 os.linesep, istring, dialogType) 628 os.linesep, istring, dialogType)
613 if not self.cSymlinks.isChecked(): 629 if not self.cSymlinks.isChecked():
614 code += '{0}.DontResolveSymlinks'.format(dialogType) 630 code += '{0}{1}.DontResolveSymlinks'.format(
631 dialogType, optionStr)
615 if ( 632 if (
616 (not self.cSymlinks.isChecked()) and 633 (not self.cSymlinks.isChecked()) and
617 (not self.cConfirmOverwrite.isChecked()) 634 (not self.cConfirmOverwrite.isChecked())
618 ): 635 ):
619 code += ' | ' 636 code += ' | '
620 if not self.cConfirmOverwrite.isChecked(): 637 if not self.cConfirmOverwrite.isChecked():
621 code += '{0}.DontConfirmOverwrite'.format(dialogType) 638 code += '{0}{1}.DontConfirmOverwrite'.format(
639 dialogType, optionStr)
622 code += ')' 640 code += ')'
623 if ( 641 if (
624 self.rSaveFileUrl.isChecked() and 642 self.rSaveFileUrl.isChecked() and
625 bool(self.schemesEdit.text()) 643 bool(self.schemesEdit.text())
626 ): 644 ):
660 fmt = '"{0}"' 678 fmt = '"{0}"'
661 code += fmt.format(self.eWorkDir.text()) 679 code += fmt.format(self.eWorkDir.text())
662 code += ',{0}{1}{2}.Options('.format(os.linesep, istring, 680 code += ',{0}{1}{2}.Options('.format(os.linesep, istring,
663 dialogType) 681 dialogType)
664 if not self.cSymlinks.isChecked(): 682 if not self.cSymlinks.isChecked():
665 code += '{0}.DontResolveSymlinks | '.format(dialogType) 683 code += '{0}{1}.DontResolveSymlinks | '.format(
684 dialogType, optionStr)
666 if self.cDirOnly.isChecked(): 685 if self.cDirOnly.isChecked():
667 code += '{0}.ShowDirsOnly'.format(dialogType) 686 code += '{0}{1}.ShowDirsOnly'.format(
687 dialogType, optionStr)
668 else: 688 else:
669 code += '{0}.Option(0)'.format(dialogType) 689 code += '{0}.Option(0)'.format(dialogType)
670 code += ')' 690 code += ')'
671 if self.rDirectoryUrl.isChecked(): 691 if self.rDirectoryUrl.isChecked():
672 code += ',{0}{1}{2}'.format( 692 code += ',{0}{1}{2}'.format(

eric ide

mercurial