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( |