--- a/src/eric7/Project/AddFileDialog.py Wed Nov 16 11:04:18 2022 +0100 +++ b/src/eric7/Project/AddFileDialog.py Wed Nov 16 18:11:52 2022 +0100 @@ -27,10 +27,15 @@ Constructor @param pro reference to the project object - @param parent parent widget of this dialog (QWidget) - @param fileTypeFilter filter specification for the file to add (string) - @param name name of this dialog (string) + @type Project + @param parent parent widget of this dialog + @type QWidget + @param fileTypeFilter filter specification for the file to add + @type str + @param name name of this dialog + @type str @param startdir start directory for the selection dialog + @type str """ super().__init__(parent) if name: @@ -44,12 +49,10 @@ if startdir: self.targetDirPicker.setText(startdir) else: - self.targetDirPicker.setText(pro.ppath) + self.targetDirPicker.setText(pro.getProjectPath()) self.fileTypeFilter = fileTypeFilter - self.ppath = pro.ppath + self.__project = pro self.startdir = startdir - self.filetypes = pro.getProjectData(dataKey="FILETYPES") - # save a reference to the filetypes dict if self.fileTypeFilter is not None: self.sourcecodeCheckBox.hide() @@ -68,82 +71,18 @@ path = self.startdir self.sourceFilesPicker.setDefaultDirectory(path) + caption = self.tr("Select Files") if self.fileTypeFilter is None: - patterns = { - "SOURCES": [], - "FORMS": [], - "RESOURCES": [], - "INTERFACES": [], - "PROTOCOLS": [], - "TRANSLATIONS": [], - } - for pattern, filetype in list(self.filetypes.items()): - if filetype in patterns: - patterns[filetype].append(pattern) - dfilter = self.tr( - "Source Files ({0});;" - "Forms Files ({1});;" - "Resource Files ({2});;" - "Interface Files ({3});;" - "Protocol Files ({4});;" - "Translation Files ({5});;" - "All Files (*)" - ).format( - " ".join(patterns["SOURCES"]), - " ".join(patterns["FORMS"]), - " ".join(patterns["RESOURCES"]), - " ".join(patterns["INTERFACES"]), - " ".join(patterns["PROTOCOLS"]), - " ".join(patterns["TRANSLATIONS"]), + dfilter = self.__project.getFileCategoryFilterString(withAll=True) + elif ( + self.fileTypeFilter != "OTHERS" + and self.fileTypeFilter in self.__project.getFileCategories() + ): + dfilter = self.__project.getFileCategoryFilterString( + [self.fileTypeFilter], withAll=False ) - caption = self.tr("Select Files") - elif self.fileTypeFilter == "form": - patterns = [] - for pattern, filetype in list(self.filetypes.items()): - if filetype == "FORMS": - patterns.append(pattern) - dfilter = self.tr("Forms Files ({0})").format(" ".join(patterns)) - caption = self.tr("Select user-interface files") - elif self.fileTypeFilter == "resource": - patterns = [] - for pattern, filetype in list(self.filetypes.items()): - if filetype == "RESOURCES": - patterns.append(pattern) - dfilter = self.tr("Resource Files ({0})").format(" ".join(patterns)) - caption = self.tr("Select resource files") - elif self.fileTypeFilter == "source": - patterns = [] - for pattern, filetype in list(self.filetypes.items()): - if filetype == "SOURCES": - patterns.append(pattern) - dfilter = self.tr("Source Files ({0});;All Files (*)").format( - " ".join(patterns) - ) - caption = self.tr("Select source files") - elif self.fileTypeFilter == "interface": - patterns = [] - for pattern, filetype in list(self.filetypes.items()): - if filetype == "INTERFACES": - patterns.append(pattern) - dfilter = self.tr("Interface Files ({0})").format(" ".join(patterns)) - caption = self.tr("Select interface files") - elif self.fileTypeFilter == "protocol": - patterns = [] - for pattern, filetype in list(self.filetypes.items()): - if filetype == "PROTOCOLS": - patterns.append(pattern) - dfilter = self.tr("Protocol Files ({0})").format(" ".join(patterns)) - caption = self.tr("Select protocol files") - elif self.fileTypeFilter == "translation": - patterns = [] - for pattern, filetype in list(self.filetypes.items()): - if filetype == "TRANSLATIONS": - patterns.append(pattern) - dfilter = self.tr("Translation Files ({0})").format(" ".join(patterns)) - caption = self.tr("Select translation files") - elif self.fileTypeFilter == "others": + elif self.fileTypeFilter == "OTHERS": dfilter = self.tr("All Files (*)") - caption = self.tr("Select files") else: dfilter = "" caption = "" @@ -161,10 +100,11 @@ It is assumed, that the user wants to add a bunch of files to the project in place. - @param sfile the text of the source file picker (string) + @param sfile the text of the source file picker + @type str """ sfile = str(self.sourceFilesPicker.firstPath()) - if sfile.startswith(self.ppath): + if sfile.startswith(self.__project.getProjectPath()): if os.path.isdir(sfile): directory = sfile else: @@ -175,9 +115,9 @@ """ Public slot to retrieve the dialogs data. - @return tuple of three values (list of string, string, boolean) - giving the source files, the target directory and a flag + @return tuple containing the source files, the target directory and a flag telling, whether the files shall be added as source code + @rtype tuple of (list of string, string, boolean) """ return ( [str(p) for p in self.sourceFilesPicker.paths()],