src/eric7/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py

branch
eric7
changeset 9211
99eb1cb030a5
parent 9209
b99e7fd55fd3
child 9212
1c5cf2022c7e
diff -r 15743bae8a50 -r 99eb1cb030a5 src/eric7/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py
--- a/src/eric7/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py	Thu Jul 07 15:02:00 2022 +0200
+++ b/src/eric7/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py	Thu Jul 07 16:38:26 2022 +0200
@@ -42,6 +42,9 @@
         super().__init__(parent)
         self.setupUi(self)
         
+        self.startDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
+        self.startDirPicker.setDefaultDirectory(project.getProjectPath())
+        
         self.outputDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.outputDirPicker.setDefaultDirectory(project.getProjectPath())
         
@@ -92,6 +95,9 @@
                     self.colors[key] = parms[key]
                 else:
                     self.parameters[key] = parms[key]
+        self.parameters["startDirectory"] = Utilities.toNativeSeparators(
+            self.parameters['startDirectory']
+        )
         self.parameters['outputDirectory'] = Utilities.toNativeSeparators(
             self.parameters['outputDirectory']
         )
@@ -112,6 +118,7 @@
         self.recursionCheckBox.setChecked(self.parameters['useRecursion'])
         self.noindexCheckBox.setChecked(self.parameters['noindex'])
         self.noemptyCheckBox.setChecked(self.parameters['noempty'])
+        self.startDirPicker.setText(self.parameters['startDirectory'])
         self.outputDirPicker.setText(self.parameters['outputDirectory'])
         self.ignoreDirsList.clear()
         for d in self.parameters['ignoreDirectories']:
@@ -145,6 +152,7 @@
             'useRecursion': False,
             'noindex': False,
             'noempty': False,
+            'startDirectory': '',
             'outputDirectory': '',
             'ignoreDirectories': [],
             'ignoreFilePatterns': [],
@@ -184,23 +192,23 @@
         
         # 2. the commandline options
         # 2a. general commandline options
-        if (
-            self.parameters['outputDirectory'] !=
-            self.defaults['outputDirectory']
-        ):
-            parms['outputDirectory'] = Utilities.fromNativeSeparators(
-                self.project.getRelativePath(
-                    self.parameters['outputDirectory']))
+        if self.parameters['startDirectory'] != self.defaults['startDirectory']:
+            parms['startDirectory'] = self.project.getRelativeUniversalPath(
+                self.parameters['startDirectory']
+            )
+        else:
+            self.parameters['startDirectory'] = self.defaults['startDirectory']
+            parms['startDirectory'] = self.parameters['startDirectory']
+        if self.parameters['outputDirectory'] != self.defaults['outputDirectory']:
+            parms['outputDirectory'] = self.project.getRelativeUniversalPath(
+                self.parameters['outputDirectory']
+            )
             args.append('-o')
-            if os.path.isabs(self.parameters['outputDirectory']):
-                args.append(self.parameters['outputDirectory'])
-            else:
-                args.append(os.path.join(
-                    self.ppath, self.parameters['outputDirectory']))
+            args.append(
+                self.project.getAbsolutePath(self.parameters['outputDirectory'])
+            )
         else:
-            self.parameters['outputDirectory'] = (
-                self.defaults['outputDirectory']
-            )
+            self.parameters['outputDirectory'] = self.defaults['outputDirectory']
             parms['outputDirectory'] = self.parameters['outputDirectory']
         if (
             self.parameters['ignoreDirectories'] !=
@@ -267,16 +275,19 @@
             self.parameters['qtHelpOutputDirectory'] !=
             self.defaults['qtHelpOutputDirectory']
         ):
-            parms['qtHelpOutputDirectory'] = Utilities.fromNativeSeparators(
-                self.project.getRelativePath(
-                    self.parameters['qtHelpOutputDirectory']))
+            parms['qtHelpOutputDirectory'] = self.project.getRelativeUniversalPath(
+                self.parameters['qtHelpOutputDirectory']
+            )
             if os.path.isabs(self.parameters['outputDirectory']):
                 args.append("--qhp-outdir={0}".format(
-                    self.parameters['qtHelpOutputDirectory']))
+                    self.parameters['qtHelpOutputDirectory'])
+                )
             else:
                 args.append("--qhp-outdir={0}".format(
-                    os.path.join(self.ppath,
-                                 self.parameters['qtHelpOutputDirectory'])))
+                    self.project.getAbsolutePath(
+                        self.parameters['qtHelpOutputDirectory']
+                    )
+                ))
         if (
             self.parameters['qtHelpNamespace'] !=
             self.defaults['qtHelpNamespace']
@@ -322,7 +333,26 @@
             )
             args.append('--create-qhc')
         
-        return (args, parms)
+        startDir = (
+            self.project.getAbsolutePath(self.parameters['startDirectory'])
+            if self.parameters['startDirectory'] else
+            ""
+        )
+        return args, parms, startDir
+    
+    @pyqtSlot(str)
+    def on_startDirPicker_pathSelected(self, path):
+        """
+        Private slot handling the selection of a start directory.
+        
+        @param path path of the start directory
+        @type str
+        """
+        # make it relative, if it is in a subdirectory of the project path
+        dn = self.project.getRelativePath(path)
+        while dn.endswith(os.sep):
+            dn = dn[:-1]
+        self.startDirPicker.setText(dn)
     
     @pyqtSlot(str)
     def on_outputDirPicker_pathSelected(self, path):
@@ -538,12 +568,21 @@
         self.parameters['useRecursion'] = self.recursionCheckBox.isChecked()
         self.parameters['noindex'] = self.noindexCheckBox.isChecked()
         self.parameters['noempty'] = self.noemptyCheckBox.isChecked()
+        
+        startdir = self.startDirPicker.text()
+        if startdir:
+            startdir = os.path.normpath(startdir)
+            if startdir.endswith(os.sep):
+                startdir = startdir[:-1]
+        self.parameters["startDirectory"] = startdir
+        
         outdir = self.outputDirPicker.text()
-        if outdir != '':
+        if outdir:
             outdir = os.path.normpath(outdir)
             if outdir.endswith(os.sep):
                 outdir = outdir[:-1]
         self.parameters['outputDirectory'] = outdir
+        
         self.parameters['ignoreDirectories'] = []
         for row in range(0, self.ignoreDirsList.count()):
             itm = self.ignoreDirsList.item(row)

eric ide

mercurial