Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py

changeset 4593
cc745fa6c914
parent 4021
195a471c327b
child 4631
5c1a96925da4
--- a/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py	Sun Nov 29 17:25:42 2015 +0100
+++ b/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py	Sun Nov 29 19:29:34 2015 +0100
@@ -17,14 +17,12 @@
 from PyQt5.QtGui import QColor
 from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QColorDialog
 
-from E5Gui.E5Completers import E5DirCompleter
-from E5Gui import E5FileDialog
+from E5Gui.E5PathPicker import E5PathPickerModes
 
 from .Ui_EricdocConfigDialog import Ui_EricdocConfigDialog
 from DocumentationTools.Config import eric6docDefaultColors, \
     eric6docColorParameterNames
 import Utilities
-import UI.PixmapCache
 
 from eric6config import getConfig
 
@@ -44,10 +42,19 @@
         super(EricdocConfigDialog, self).__init__(parent)
         self.setupUi(self)
         
-        self.outputDirButton.setIcon(UI.PixmapCache.getIcon("open.png"))
-        self.ignoreDirButton.setIcon(UI.PixmapCache.getIcon("open.png"))
-        self.cssButton.setIcon(UI.PixmapCache.getIcon("open.png"))
-        self.qtHelpDirButton.setIcon(UI.PixmapCache.getIcon("open.png"))
+        self.outputDirPicker.setMode(E5PathPickerModes.DirectoryMode)
+        self.outputDirPicker.setDefaultDirectory(project.getProjectPath())
+        
+        self.ignoreDirPicker.setMode(E5PathPickerModes.DirectoryMode)
+        self.ignoreDirPicker.setDefaultDirectory(project.getProjectPath())
+        
+        self.cssPicker.setMode(E5PathPickerModes.OpenFileMode)
+        self.cssPicker.setDefaultDirectory(getConfig('ericCSSDir'))
+        self.cssPicker.setFilters(self.tr(
+            "Style sheet (*.css);;All files (*)"))
+        
+        self.qtHelpDirPicker.setMode(E5PathPickerModes.DirectoryMode)
+        self.qtHelpDirPicker.setDefaultDirectory(project.getProjectPath())
         
         self.__okButton = self.buttonBox.button(QDialogButtonBox.Ok)
         
@@ -100,18 +107,14 @@
         self.ppath = project.getProjectPath()
         self.project = project
         
-        self.outputDirCompleter = E5DirCompleter(self.outputDirEdit)
-        self.ignoreDirCompleter = E5DirCompleter(self.ignoreDirEdit)
-        self.qtHelpDirCompleter = E5DirCompleter(self.qtHelpDirEdit)
-        
         self.recursionCheckBox.setChecked(self.parameters['useRecursion'])
         self.noindexCheckBox.setChecked(self.parameters['noindex'])
         self.noemptyCheckBox.setChecked(self.parameters['noempty'])
-        self.outputDirEdit.setText(self.parameters['outputDirectory'])
+        self.outputDirPicker.setText(self.parameters['outputDirectory'])
         self.ignoreDirsList.clear()
         for d in self.parameters['ignoreDirectories']:
             self.ignoreDirsList.addItem(d)
-        self.cssEdit.setText(self.parameters['cssFile'])
+        self.cssPicker.setText(self.parameters['cssFile'])
         self.sourceExtEdit.setText(
             ", ".join(self.parameters['sourceExtensions']))
         self.excludeFilesEdit.setText(
@@ -119,7 +122,7 @@
         self.sample.setHtml(self.sampleText.format(**self.colors))
         
         self.qtHelpGroup.setChecked(self.parameters['qtHelpEnabled'])
-        self.qtHelpDirEdit.setText(self.parameters['qtHelpOutputDirectory'])
+        self.qtHelpDirPicker.setText(self.parameters['qtHelpOutputDirectory'])
         self.qtHelpNamespaceEdit.setText(self.parameters['qtHelpNamespace'])
         self.qtHelpFolderEdit.setText(self.parameters['qtHelpVirtualFolder'])
         self.qtHelpFilterNameEdit.setText(self.parameters['qtHelpFilterName'])
@@ -290,56 +293,34 @@
             args.append('--create-qhc')
         
         return (args, parms)
-
-    @pyqtSlot()
-    def on_outputDirButton_clicked(self):
+    
+    @pyqtSlot(str)
+    def on_outputDirPicker_pathSelected(self, path):
         """
-        Private slot to select the output directory.
+        Private slot handling the selection of an output directory.
         
-        It displays a directory selection dialog to
-        select the directory the documentations is written to.
+        @param path path of the output directory
+        @type str
         """
-        startDir = Utilities.fromNativeSeparators(self.outputDirEdit.text())
-        if not startDir:
-            startDir = Utilities.fromNativeSeparators(self.ppath)
-        directory = E5FileDialog.getExistingDirectory(
-            self,
-            self.tr("Select output directory"),
-            startDir,
-            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
-            
-        if directory:
-            # make it relative, if it is a subdirectory of the project path
-            dn = Utilities.toNativeSeparators(directory)
-            dn = self.project.getRelativePath(dn)
-            while dn.endswith(os.sep):
-                dn = dn[:-1]
-            self.outputDirEdit.setText(dn)
-
-    @pyqtSlot()
-    def on_ignoreDirButton_clicked(self):
+        # 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.outputDirPicker.setText(dn)
+    
+    @pyqtSlot(str)
+    def on_ignoreDirPicker_pathSelected(self, path):
         """
-        Private slot to select a directory to be ignored.
+        Private slot handling the selection of a directory to be ignored.
         
-        It displays a directory selection dialog to
-        select a directory to be ignored.
+        @param path path of the directory to be ignored
+        @type str
         """
-        startDir = Utilities.fromNativeSeparators(self.ignoreDirEdit.text())
-        if not startDir:
-            startDir = self.ppath
-        directory = E5FileDialog.getExistingDirectory(
-            self,
-            self.tr("Select directory to exclude"),
-            startDir,
-            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
-            
-        if directory:
-            # make it relative, if it is a subdirectory of the project path
-            dn = Utilities.toNativeSeparators(directory)
-            dn = self.project.getRelativePath(dn)
-            while dn.endswith(os.sep):
-                dn = dn[:-1]
-            self.ignoreDirEdit.setText(dn)
+        # 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.ignoreDirPicker.setText(dn)
 
     @pyqtSlot()
     def on_addButton_clicked(self):
@@ -349,10 +330,10 @@
         The directory in the ignore directories
         line edit is moved to the listbox above and the edit is cleared.
         """
-        basename = os.path.basename(self.ignoreDirEdit.text())
+        basename = os.path.basename(self.ignoreDirPicker.text())
         if basename:
             self.ignoreDirsList.addItem(basename)
-            self.ignoreDirEdit.clear()
+            self.ignoreDirPicker.clear()
 
     @pyqtSlot()
     def on_deleteButton_clicked(self):
@@ -361,23 +342,18 @@
         """
         itm = self.ignoreDirsList.takeItem(self.ignoreDirsList.currentRow())
         del itm
-
-    @pyqtSlot()
-    def on_cssButton_clicked(self):
-        """
-        Private slot to select a css style sheet.
+    
+    @pyqtSlot(str)
+    def on_cssPicker_pathSelected(self, path):
         """
-        cssFile = E5FileDialog.getOpenFileName(
-            self,
-            self.tr("Select CSS style sheet"),
-            getConfig('ericCSSDir'),
-            self.tr("Style sheet (*.css);;All files (*)"))
-            
-        if cssFile:
-            # make it relative, if it is in a subdirectory of the project path
-            cf = Utilities.toNativeSeparators(cssFile)
-            cf = self.project.getRelativePath(cf)
-            self.cssEdit.setText(cf)
+        Private slot handling the selection of a css style sheet.
+        
+        @param path path of the css style sheet
+        @type str
+        """
+        # make it relative, if it is in a subdirectory of the project path
+        cf = self.project.getRelativePath(path)
+        self.cssPicker.setText(cf)
 
     def __selectColor(self, colorKey):
         """
@@ -508,27 +484,20 @@
         """
         self.__checkQtHelpOptions()
     
-    @pyqtSlot()
-    def on_qtHelpDirButton_clicked(self):
-        """
-        Private slot to select the output directory for the QtHelp files.
-        
-        It displays a directory selection dialog to
-        select the directory the QtHelp files are written to.
+    @pyqtSlot(str)
+    def on_qtHelpDirPicker_pathSelected(self, path):
         """
-        directory = E5FileDialog.getExistingDirectory(
-            self,
-            self.tr("Select output directory for QtHelp files"),
-            self.qtHelpDirEdit.text(),
-            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
-            
-        if directory:
-            # make it relative, if it is a subdirectory of the project path
-            dn = Utilities.toNativeSeparators(directory)
-            dn = self.project.getRelativePath(dn)
-            while dn.endswith(os.sep):
-                dn = dn[:-1]
-            self.qtHelpDirEdit.setText(dn)
+        Private slot handling the selection of the output directory for the
+        QtHelp files.
+        
+        @param path path of the the output directory for the QtHelp files
+        @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.qtHelpDirPicker.setText(dn)
     
     def accept(self):
         """
@@ -539,7 +508,7 @@
         self.parameters['useRecursion'] = self.recursionCheckBox.isChecked()
         self.parameters['noindex'] = self.noindexCheckBox.isChecked()
         self.parameters['noempty'] = self.noemptyCheckBox.isChecked()
-        outdir = self.outputDirEdit.text()
+        outdir = self.outputDirPicker.text()
         if outdir != '':
             outdir = os.path.normpath(outdir)
             if outdir.endswith(os.sep):
@@ -550,7 +519,7 @@
             itm = self.ignoreDirsList.item(row)
             self.parameters['ignoreDirectories'].append(
                 os.path.normpath(itm.text()))
-        cssFile = self.cssEdit.text()
+        cssFile = self.cssPicker.text()
         if cssFile != '':
             cssFile = os.path.normpath(cssFile)
         self.parameters['cssFile'] = cssFile
@@ -562,7 +531,7 @@
             [pattern.strip() for pattern in patterns]
         
         self.parameters['qtHelpEnabled'] = self.qtHelpGroup.isChecked()
-        self.parameters['qtHelpOutputDirectory'] = self.qtHelpDirEdit.text()
+        self.parameters['qtHelpOutputDirectory'] = self.qtHelpDirPicker.text()
         self.parameters['qtHelpNamespace'] = self.qtHelpNamespaceEdit.text()
         self.parameters['qtHelpVirtualFolder'] = self.qtHelpFolderEdit.text()
         self.parameters['qtHelpFilterName'] = self.qtHelpFilterNameEdit.text()

eric ide

mercurial