src/eric7/Project/AddFileDialog.py

branch
eric7
changeset 9516
0f023e61a9b5
parent 9514
2b104ad132a4
child 9653
e67609152c5e
--- 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()],

eric ide

mercurial