532 windowTitle = self.tr("Choose a directory") |
599 windowTitle = self.tr("Choose a directory") |
533 |
600 |
534 directory = self._editorText() |
601 directory = self._editorText() |
535 if not directory and self.__defaultDirectory: |
602 if not directory and self.__defaultDirectory: |
536 directory = self.__defaultDirectory |
603 directory = self.__defaultDirectory |
537 directory = ( |
604 if self.__remote: |
538 os.path.expanduser(directory.split(";")[0]) |
605 directory = ( |
539 if self.__mode |
606 self.__remotefsInterface.expanduser(directory.split(";")[0]) |
540 in ( |
607 if self.__mode == EricPathPickerModes.OPEN_FILES_MODE |
541 EricPathPickerModes.OPEN_FILES_MODE, |
608 else self.__remotefsInterface.expanduser(directory) |
542 EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE, |
|
543 ) |
609 ) |
544 else os.path.expanduser(directory) |
610 else: |
545 ) |
611 directory = ( |
546 if not os.path.isabs(directory) and self.__defaultDirectory: |
612 os.path.expanduser(directory.split(";")[0]) |
547 directory = os.path.join(self.__defaultDirectory, directory) |
613 if self.__mode |
548 directory = QDir.fromNativeSeparators(directory) |
614 in ( |
|
615 EricPathPickerModes.OPEN_FILES_MODE, |
|
616 EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE, |
|
617 ) |
|
618 else os.path.expanduser(directory) |
|
619 ) |
|
620 if not os.path.isabs(directory) and self.__defaultDirectory: |
|
621 directory = os.path.join(self.__defaultDirectory, directory) |
|
622 directory = QDir.fromNativeSeparators(directory) |
549 |
623 |
550 if self.__mode == EricPathPickerModes.OPEN_FILE_MODE: |
624 if self.__mode == EricPathPickerModes.OPEN_FILE_MODE: |
551 fpath = EricFileDialog.getOpenFileName( |
625 if self.__remote: |
552 self, windowTitle, directory, self.__filters |
626 fpath = EricServerFileDialog.getOpenFileName( |
553 ) |
627 self, windowTitle, directory, self.__filters |
554 fpath = QDir.toNativeSeparators(fpath) |
628 ) |
|
629 else: |
|
630 fpath = EricFileDialog.getOpenFileName( |
|
631 self, windowTitle, directory, self.__filters |
|
632 ) |
|
633 fpath = QDir.toNativeSeparators(fpath) |
555 elif self.__mode == EricPathPickerModes.OPEN_FILES_MODE: |
634 elif self.__mode == EricPathPickerModes.OPEN_FILES_MODE: |
556 fpaths = EricFileDialog.getOpenFileNames( |
635 if self.__remote: |
557 self, windowTitle, directory, self.__filters |
636 fpaths = EricServerFileDialog.getOpenFileNames( |
558 ) |
637 self, windowTitle, directory, self.__filters |
559 fpath = ";".join([QDir.toNativeSeparators(fpath) for fpath in fpaths]) |
638 ) |
|
639 fpath = ";".join(fpaths) |
|
640 else: |
|
641 fpaths = EricFileDialog.getOpenFileNames( |
|
642 self, windowTitle, directory, self.__filters |
|
643 ) |
|
644 fpath = ";".join([QDir.toNativeSeparators(fpath) for fpath in fpaths]) |
560 elif self.__mode == EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE: |
645 elif self.__mode == EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE: |
|
646 # that is not supported for 'remote' pickers |
561 fpaths = EricFileDialog.getOpenFileAndDirNames( |
647 fpaths = EricFileDialog.getOpenFileAndDirNames( |
562 self, windowTitle, directory, self.__filters |
648 self, windowTitle, directory, self.__filters |
563 ) |
649 ) |
564 fpath = ";".join([QDir.toNativeSeparators(fpath) for fpath in fpaths]) |
650 fpath = ";".join([QDir.toNativeSeparators(fpath) for fpath in fpaths]) |
565 elif self.__mode == EricPathPickerModes.SAVE_FILE_MODE: |
651 elif self.__mode == EricPathPickerModes.SAVE_FILE_MODE: |
566 fpath = EricFileDialog.getSaveFileName( |
652 if self.__remote: |
567 self, |
653 fpath = EricServerFileDialog.getSaveFileName( |
568 windowTitle, |
654 self, |
569 directory, |
655 windowTitle, |
570 self.__filters, |
656 directory, |
571 EricFileDialog.DontConfirmOverwrite, |
657 self.__filters, |
572 ) |
658 ) |
573 fpath = QDir.toNativeSeparators(fpath) |
659 else: |
|
660 fpath = EricFileDialog.getSaveFileName( |
|
661 self, |
|
662 windowTitle, |
|
663 directory, |
|
664 self.__filters, |
|
665 EricFileDialog.DontConfirmOverwrite, |
|
666 ) |
|
667 fpath = QDir.toNativeSeparators(fpath) |
574 elif self.__mode == EricPathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE: |
668 elif self.__mode == EricPathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE: |
575 fpath, selectedFilter = EricFileDialog.getSaveFileNameAndFilter( |
669 if self.__remote: |
576 self, |
670 fpath, selectedFilter = EricServerFileDialog.getSaveFileNameAndFilter( |
577 windowTitle, |
671 self, |
578 directory, |
672 windowTitle, |
579 self.__filters, |
673 directory, |
580 None, |
674 self.__filters, |
581 EricFileDialog.DontConfirmOverwrite, |
675 ) |
582 ) |
676 fn, ext = self.__remotefsInterface.splitext(fpath) |
583 fpath = pathlib.Path(fpath) |
677 if not ext: |
584 if not fpath.suffix: |
678 ex = selectedFilter.split("(*")[1].split(")")[0].split()[0] |
585 ex = selectedFilter.split("(*")[1].split(")")[0].split()[0] |
679 if ex: |
586 if ex: |
680 fpath = f"{fn}{ex}" |
587 fpath = fpath.with_suffix(ex) |
681 else: |
|
682 fpath, selectedFilter = EricFileDialog.getSaveFileNameAndFilter( |
|
683 self, |
|
684 windowTitle, |
|
685 directory, |
|
686 self.__filters, |
|
687 None, |
|
688 EricFileDialog.DontConfirmOverwrite, |
|
689 ) |
|
690 fpath = pathlib.Path(fpath) |
|
691 if not fpath.suffix: |
|
692 ex = selectedFilter.split("(*")[1].split(")")[0].split()[0] |
|
693 if ex: |
|
694 fpath = fpath.with_suffix(ex) |
588 elif self.__mode == EricPathPickerModes.SAVE_FILE_OVERWRITE_MODE: |
695 elif self.__mode == EricPathPickerModes.SAVE_FILE_OVERWRITE_MODE: |
589 fpath = EricFileDialog.getSaveFileName( |
696 if self.__remote: |
590 self, windowTitle, directory, self.__filters |
697 fpath = EricServerFileDialog.getSaveFileName( |
591 ) |
698 self, |
592 fpath = QDir.toNativeSeparators(fpath) |
699 windowTitle, |
|
700 directory, |
|
701 self.__filters, |
|
702 ) |
|
703 else: |
|
704 fpath = EricFileDialog.getSaveFileName( |
|
705 self, windowTitle, directory, self.__filters |
|
706 ) |
|
707 fpath = QDir.toNativeSeparators(fpath) |
593 elif self.__mode == EricPathPickerModes.DIRECTORY_MODE: |
708 elif self.__mode == EricPathPickerModes.DIRECTORY_MODE: |
594 fpath = EricFileDialog.getExistingDirectory( |
709 if self.__remote: |
595 self, windowTitle, directory, EricFileDialog.ShowDirsOnly |
710 fpath = EricServerFileDialog.getExistingDirectory( |
596 ) |
711 self, windowTitle, directory, True |
597 fpath = QDir.toNativeSeparators(fpath) |
712 ) |
598 while fpath.endswith(os.sep): |
713 while fpath.endswith(self.__remotefsInterface.separator()): |
599 fpath = fpath[:-1] |
714 fpath = fpath[:-1] |
|
715 else: |
|
716 fpath = EricFileDialog.getExistingDirectory( |
|
717 self, windowTitle, directory, EricFileDialog.ShowDirsOnly |
|
718 ) |
|
719 fpath = QDir.toNativeSeparators(fpath) |
|
720 while fpath.endswith(os.sep): |
|
721 fpath = fpath[:-1] |
600 elif self.__mode == EricPathPickerModes.DIRECTORY_SHOW_FILES_MODE: |
722 elif self.__mode == EricPathPickerModes.DIRECTORY_SHOW_FILES_MODE: |
601 fpath = EricFileDialog.getExistingDirectory( |
723 if self.__remote: |
602 self, windowTitle, directory, EricFileDialog.DontUseNativeDialog |
724 fpath = EricServerFileDialog.getExistingDirectory( |
603 ) |
725 self, windowTitle, directory, False |
604 fpath = QDir.toNativeSeparators(fpath) |
726 ) |
605 while fpath.endswith(os.sep): |
727 while fpath.endswith(self.__remotefsInterface): |
606 fpath = fpath[:-1] |
728 fpath = fpath[:-1] |
|
729 else: |
|
730 fpath = EricFileDialog.getExistingDirectory( |
|
731 self, windowTitle, directory, EricFileDialog.DontUseNativeDialog |
|
732 ) |
|
733 fpath = QDir.toNativeSeparators(fpath) |
|
734 while fpath.endswith(os.sep): |
|
735 fpath = fpath[:-1] |
607 |
736 |
608 if fpath: |
737 if fpath: |
609 self._setEditorText(str(fpath)) |
738 self._setEditorText(str(fpath)) |
610 self.pathSelected.emit(str(fpath)) |
739 self.pathSelected.emit(str(fpath)) |
611 |
740 |