Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py

changeset 4593
cc745fa6c914
parent 4223
fafc5c2033f1
child 4631
5c1a96925da4
diff -r 9fdd473c68fb -r cc745fa6c914 Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py
--- a/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py	Sun Nov 29 17:25:42 2015 +0100
+++ b/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py	Sun Nov 29 19:29:34 2015 +0100
@@ -16,12 +16,10 @@
 from PyQt5.QtCore import pyqtSlot, Qt
 from PyQt5.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter
-from E5Gui import E5FileDialog
+from E5Gui.E5PathPicker import E5PathPickerModes
 
 from .Ui_EricapiConfigDialog import Ui_EricapiConfigDialog
 import Utilities
-import UI.PixmapCache
 import DocumentationTools
 
 from eric6config import getConfig
@@ -42,8 +40,13 @@
         super(EricapiConfigDialog, self).__init__(parent)
         self.setupUi(self)
         
-        self.outputFileButton.setIcon(UI.PixmapCache.getIcon("open.png"))
-        self.ignoreDirButton.setIcon(UI.PixmapCache.getIcon("open.png"))
+        self.outputFilePicker.setMode(E5PathPickerModes.SaveFileMode)
+        self.outputFilePicker.setDefaultDirectory(project.getProjectPath())
+        self.outputFilePicker.setFilters(self.tr(
+            "API files (*.api);;All files (*)"))
+        
+        self.ignoreDirPicker.setMode(E5PathPickerModes.DirectoryMode)
+        self.ignoreDirPicker.setDefaultDirectory(project.getProjectPath())
         
         self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False)
         for language in sorted(
@@ -65,13 +68,10 @@
         self.parameters['outputFile'] = \
             Utilities.toNativeSeparators(self.parameters['outputFile'])
         
-        self.outputFileCompleter = E5FileCompleter(self.outputFileEdit)
-        self.ignoreDirCompleter = E5DirCompleter(self.ignoreDirEdit)
-        
         self.recursionCheckBox.setChecked(self.parameters['useRecursion'])
         self.includePrivateCheckBox.setChecked(
             self.parameters['includePrivate'])
-        self.outputFileEdit.setText(self.parameters['outputFile'])
+        self.outputFilePicker.setText(self.parameters['outputFile'])
         self.baseEdit.setText(self.parameters['basePackage'])
         self.ignoreDirsList.clear()
         for d in self.parameters['ignoreDirectories']:
@@ -181,63 +181,48 @@
         return (args, parms)
 
     @pyqtSlot()
-    def on_outputFileButton_clicked(self):
+    def on_outputFilePicker_aboutToShowPathPickerDialog(self):
         """
-        Private slot to select the output file.
-        
-        It displays a file selection dialog to
-        select the file the api is written to.
+        Private slot called before the file selection dialog is shown.
         """
-        startFile = Utilities.fromNativeSeparators(self.outputFileEdit.text())
+        startFile = self.outputFilePicker.text()
         if not startFile:
-            startPath = Utilities.fromNativeSeparators(
-                self.project.getProjectPath())
-            startFile = (startPath + "/" +
-                         self.project.getProjectName() + ".api")
-        filename = E5FileDialog.getSaveFileName(
-            self,
-            self.tr("Select output file"),
-            startFile,
-            self.tr("API files (*.api);;All files (*)"))
-            
-        if filename:
-            # make it relative, if it is in a subdirectory of the project path
-            fn = Utilities.toNativeSeparators(filename)
-            fn = self.project.getRelativePath(fn)
-            self.outputFileEdit.setText(fn)
+            self.outputFilePicker.setText(
+                self.project.getProjectName() + ".api")
+    
+    @pyqtSlot(str)
+    def on_outputFilePicker_pathSelected(self, path):
+        """
+        Private slot handling the selection of an output file.
+        
+        @param path path of the output file
+        @type str
+        """
+        # make it relative, if it is in a subdirectory of the project path
+        fn = self.project.getRelativePath(path)
+        self.outputFilePicker.setText(fn)
 
-    def on_outputFileEdit_textChanged(self, filename):
+    def on_outputFilePicker_textChanged(self, filename):
         """
         Private slot to enable/disable the "OK" button.
         
         @param filename name of the file (string)
         """
         self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(filename != "")
-
-    @pyqtSlot()
-    def on_ignoreDirButton_clicked(self):
-        """
-        Private slot to select a directory to be ignored.
-        
-        It displays a directory selection dialog to
-        select a directory to be ignored.
+    
+    @pyqtSlot(str)
+    def on_ignoreDirPicker_pathSelected(self, path):
         """
-        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)
+        Private slot handling the selection of a directory to be ignored.
+        
+        @param path path of the directory to be ignored
+        @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.ignoreDirPicker.setText(dn)
     
     @pyqtSlot()
     def on_addButton_clicked(self):
@@ -247,10 +232,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):
@@ -269,7 +254,7 @@
         self.parameters['useRecursion'] = self.recursionCheckBox.isChecked()
         self.parameters['includePrivate'] = \
             self.includePrivateCheckBox.isChecked()
-        outfile = self.outputFileEdit.text()
+        outfile = self.outputFilePicker.text()
         if outfile != '':
             outfile = os.path.normpath(outfile)
         self.parameters['outputFile'] = outfile

eric ide

mercurial