Changed the Python2 debugger and Editor APIs pages to use the path picker.

Wed, 25 Nov 2015 19:01:45 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 25 Nov 2015 19:01:45 +0100
changeset 4575
464a6b049f89
parent 4574
86647045bc03
child 4576
a258569d44db

Changed the Python2 debugger and Editor APIs pages to use the path picker.

APIs/Python3/eric6.api file | annotate | diff | comparison | revisions
APIs/Python3/eric6.bas file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric6.E5Gui.E5PathPicker.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Preferences.ConfigurationPages.DebuggerRubyPage.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Preferences.ConfigurationPages.EditorAPIsPage.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric6.Preferences.ConfigurationPages.html file | annotate | diff | comparison | revisions
E5Gui/E5PathPicker.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerPython3Page.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerPythonPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerPythonPage.ui file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerRubyPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerRubyPage.ui file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorAPIsPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorAPIsPage.ui file | annotate | diff | comparison | revisions
eric6.e4p file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric6.api	Tue Nov 24 19:42:42 2015 +0100
+++ b/APIs/Python3/eric6.api	Wed Nov 25 19:01:45 2015 +0100
@@ -1408,6 +1408,7 @@
 eric6.E5Gui.E5PasswordMeter.E5PasswordMeter?1(parent=None)
 eric6.E5Gui.E5PathPicker.E5PathPicker.DefaultMode?7
 eric6.E5Gui.E5PathPicker.E5PathPicker.buttonToolTip?4()
+eric6.E5Gui.E5PathPicker.E5PathPicker.clear?4()
 eric6.E5Gui.E5PathPicker.E5PathPicker.defaultDirectory?4()
 eric6.E5Gui.E5PathPicker.E5PathPicker.editorEnabled?4()
 eric6.E5Gui.E5PathPicker.E5PathPicker.editorToolTip?4()
@@ -1424,6 +1425,7 @@
 eric6.E5Gui.E5PathPicker.E5PathPicker.setText?4(path)
 eric6.E5Gui.E5PathPicker.E5PathPicker.setWindowTitle?4(title)
 eric6.E5Gui.E5PathPicker.E5PathPicker.text?4()
+eric6.E5Gui.E5PathPicker.E5PathPicker.textChanged?7
 eric6.E5Gui.E5PathPicker.E5PathPicker.windowTitle?4()
 eric6.E5Gui.E5PathPicker.E5PathPicker?1(parent=None)
 eric6.E5Gui.E5PathPicker.E5PathPickerModes.DiretoryMode?7
@@ -6215,25 +6217,16 @@
 eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.DebuggerGeneralPage.save?4()
 eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.DebuggerGeneralPage?1()
 eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.create?4(dlg)
-eric6.Preferences.ConfigurationPages.DebuggerPython3Page.DebuggerPython3Page.on_debugClientButton_clicked?4()
-eric6.Preferences.ConfigurationPages.DebuggerPython3Page.DebuggerPython3Page.on_interpreterButton_clicked?4()
 eric6.Preferences.ConfigurationPages.DebuggerPython3Page.DebuggerPython3Page.save?4()
 eric6.Preferences.ConfigurationPages.DebuggerPython3Page.DebuggerPython3Page?1()
 eric6.Preferences.ConfigurationPages.DebuggerPython3Page.create?4(dlg)
-eric6.Preferences.ConfigurationPages.DebuggerPythonPage.DebuggerPythonPage.on_debugClientButton_clicked?4()
-eric6.Preferences.ConfigurationPages.DebuggerPythonPage.DebuggerPythonPage.on_interpreterButton_clicked?4()
 eric6.Preferences.ConfigurationPages.DebuggerPythonPage.DebuggerPythonPage.save?4()
 eric6.Preferences.ConfigurationPages.DebuggerPythonPage.DebuggerPythonPage?1()
 eric6.Preferences.ConfigurationPages.DebuggerPythonPage.create?4(dlg)
-eric6.Preferences.ConfigurationPages.DebuggerRubyPage.DebuggerRubyPage.on_rubyInterpreterButton_clicked?4()
-eric6.Preferences.ConfigurationPages.DebuggerRubyPage.DebuggerRubyPage.save?4()
-eric6.Preferences.ConfigurationPages.DebuggerRubyPage.DebuggerRubyPage?1()
-eric6.Preferences.ConfigurationPages.DebuggerRubyPage.create?4(dlg)
 eric6.Preferences.ConfigurationPages.EditorAPIsPage.EditorAPIsPage.on_addApiFileButton_clicked?4()
 eric6.Preferences.ConfigurationPages.EditorAPIsPage.EditorAPIsPage.on_addInstalledApiFileButton_clicked?4()
 eric6.Preferences.ConfigurationPages.EditorAPIsPage.EditorAPIsPage.on_addPluginApiFileButton_clicked?4()
-eric6.Preferences.ConfigurationPages.EditorAPIsPage.EditorAPIsPage.on_apiFileButton_clicked?4()
-eric6.Preferences.ConfigurationPages.EditorAPIsPage.EditorAPIsPage.on_apiFileEdit_textChanged?4(txt)
+eric6.Preferences.ConfigurationPages.EditorAPIsPage.EditorAPIsPage.on_apiFilePicker_textChanged?4(txt)
 eric6.Preferences.ConfigurationPages.EditorAPIsPage.EditorAPIsPage.on_apiLanguageComboBox_activated?4(language)
 eric6.Preferences.ConfigurationPages.EditorAPIsPage.EditorAPIsPage.on_apiList_itemSelectionChanged?4()
 eric6.Preferences.ConfigurationPages.EditorAPIsPage.EditorAPIsPage.on_deleteApiFileButton_clicked?4()
--- a/APIs/Python3/eric6.bas	Tue Nov 24 19:42:42 2015 +0100
+++ b/APIs/Python3/eric6.bas	Wed Nov 25 19:01:45 2015 +0100
@@ -123,7 +123,6 @@
 DebuggerPropertiesWriter XMLStreamWriterBase
 DebuggerPython3Page ConfigurationPageBase Ui_DebuggerPython3Page
 DebuggerPythonPage ConfigurationPageBase Ui_DebuggerPythonPage
-DebuggerRubyPage ConfigurationPageBase Ui_DebuggerRubyPage
 DeleteFilesConfirmationDialog QDialog Ui_DeleteFilesConfirmationDialog
 DiffDialog QWidget Ui_DiffDialog
 DiffHighlighter E5GenericDiffHighlighter
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Tue Nov 24 19:42:42 2015 +0100
+++ b/Documentation/Help/source.qhp	Wed Nov 25 19:01:45 2015 +0100
@@ -765,7 +765,6 @@
               <section title="eric6.Preferences.ConfigurationPages.DebuggerGeneralPage" ref="eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.DebuggerPython3Page" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html" />
               <section title="eric6.Preferences.ConfigurationPages.DebuggerPythonPage" ref="eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html" />
-              <section title="eric6.Preferences.ConfigurationPages.DebuggerRubyPage" ref="eric6.Preferences.ConfigurationPages.DebuggerRubyPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.EditorAPIsPage" ref="eric6.Preferences.ConfigurationPages.EditorAPIsPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.EditorAutocompletionPage" ref="eric6.Preferences.ConfigurationPages.EditorAutocompletionPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.EditorAutocompletionQScintillaPage" ref="eric6.Preferences.ConfigurationPages.EditorAutocompletionQScintillaPage.html" />
@@ -3194,20 +3193,11 @@
       <keyword name="DebuggerPython3Page" id="DebuggerPython3Page" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html#DebuggerPython3Page" />
       <keyword name="DebuggerPython3Page (Constructor)" id="DebuggerPython3Page (Constructor)" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html#DebuggerPython3Page.__init__" />
       <keyword name="DebuggerPython3Page (Module)" id="DebuggerPython3Page (Module)" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html" />
-      <keyword name="DebuggerPython3Page.on_debugClientButton_clicked" id="DebuggerPython3Page.on_debugClientButton_clicked" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html#DebuggerPython3Page.on_debugClientButton_clicked" />
-      <keyword name="DebuggerPython3Page.on_interpreterButton_clicked" id="DebuggerPython3Page.on_interpreterButton_clicked" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html#DebuggerPython3Page.on_interpreterButton_clicked" />
       <keyword name="DebuggerPython3Page.save" id="DebuggerPython3Page.save" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html#DebuggerPython3Page.save" />
       <keyword name="DebuggerPythonPage" id="DebuggerPythonPage" ref="eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html#DebuggerPythonPage" />
       <keyword name="DebuggerPythonPage (Constructor)" id="DebuggerPythonPage (Constructor)" ref="eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html#DebuggerPythonPage.__init__" />
       <keyword name="DebuggerPythonPage (Module)" id="DebuggerPythonPage (Module)" ref="eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html" />
-      <keyword name="DebuggerPythonPage.on_debugClientButton_clicked" id="DebuggerPythonPage.on_debugClientButton_clicked" ref="eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html#DebuggerPythonPage.on_debugClientButton_clicked" />
-      <keyword name="DebuggerPythonPage.on_interpreterButton_clicked" id="DebuggerPythonPage.on_interpreterButton_clicked" ref="eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html#DebuggerPythonPage.on_interpreterButton_clicked" />
       <keyword name="DebuggerPythonPage.save" id="DebuggerPythonPage.save" ref="eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html#DebuggerPythonPage.save" />
-      <keyword name="DebuggerRubyPage" id="DebuggerRubyPage" ref="eric6.Preferences.ConfigurationPages.DebuggerRubyPage.html#DebuggerRubyPage" />
-      <keyword name="DebuggerRubyPage (Constructor)" id="DebuggerRubyPage (Constructor)" ref="eric6.Preferences.ConfigurationPages.DebuggerRubyPage.html#DebuggerRubyPage.__init__" />
-      <keyword name="DebuggerRubyPage (Module)" id="DebuggerRubyPage (Module)" ref="eric6.Preferences.ConfigurationPages.DebuggerRubyPage.html" />
-      <keyword name="DebuggerRubyPage.on_rubyInterpreterButton_clicked" id="DebuggerRubyPage.on_rubyInterpreterButton_clicked" ref="eric6.Preferences.ConfigurationPages.DebuggerRubyPage.html#DebuggerRubyPage.on_rubyInterpreterButton_clicked" />
-      <keyword name="DebuggerRubyPage.save" id="DebuggerRubyPage.save" ref="eric6.Preferences.ConfigurationPages.DebuggerRubyPage.html#DebuggerRubyPage.save" />
       <keyword name="DefaultSearchEngines (Package)" id="DefaultSearchEngines (Package)" ref="index-eric6.Helpviewer.OpenSearch.DefaultSearchEngines.html" />
       <keyword name="DeleteFilesConfirmationDialog" id="DeleteFilesConfirmationDialog" ref="eric6.UI.DeleteFilesConfirmationDialog.html#DeleteFilesConfirmationDialog" />
       <keyword name="DeleteFilesConfirmationDialog (Constructor)" id="DeleteFilesConfirmationDialog (Constructor)" ref="eric6.UI.DeleteFilesConfirmationDialog.html#DeleteFilesConfirmationDialog.__init__" />
@@ -3727,6 +3717,7 @@
       <keyword name="E5PathPicker (Module)" id="E5PathPicker (Module)" ref="eric6.E5Gui.E5PathPicker.html" />
       <keyword name="E5PathPicker.__showPathPickerDialog" id="E5PathPicker.__showPathPickerDialog" ref="eric6.E5Gui.E5PathPicker.html#E5PathPicker.__showPathPickerDialog" />
       <keyword name="E5PathPicker.buttonToolTip" id="E5PathPicker.buttonToolTip" ref="eric6.E5Gui.E5PathPicker.html#E5PathPicker.buttonToolTip" />
+      <keyword name="E5PathPicker.clear" id="E5PathPicker.clear" ref="eric6.E5Gui.E5PathPicker.html#E5PathPicker.clear" />
       <keyword name="E5PathPicker.defaultDirectory" id="E5PathPicker.defaultDirectory" ref="eric6.E5Gui.E5PathPicker.html#E5PathPicker.defaultDirectory" />
       <keyword name="E5PathPicker.editorEnabled" id="E5PathPicker.editorEnabled" ref="eric6.E5Gui.E5PathPicker.html#E5PathPicker.editorEnabled" />
       <keyword name="E5PathPicker.editorToolTip" id="E5PathPicker.editorToolTip" ref="eric6.E5Gui.E5PathPicker.html#E5PathPicker.editorToolTip" />
@@ -4464,8 +4455,7 @@
       <keyword name="EditorAPIsPage.on_addApiFileButton_clicked" id="EditorAPIsPage.on_addApiFileButton_clicked" ref="eric6.Preferences.ConfigurationPages.EditorAPIsPage.html#EditorAPIsPage.on_addApiFileButton_clicked" />
       <keyword name="EditorAPIsPage.on_addInstalledApiFileButton_clicked" id="EditorAPIsPage.on_addInstalledApiFileButton_clicked" ref="eric6.Preferences.ConfigurationPages.EditorAPIsPage.html#EditorAPIsPage.on_addInstalledApiFileButton_clicked" />
       <keyword name="EditorAPIsPage.on_addPluginApiFileButton_clicked" id="EditorAPIsPage.on_addPluginApiFileButton_clicked" ref="eric6.Preferences.ConfigurationPages.EditorAPIsPage.html#EditorAPIsPage.on_addPluginApiFileButton_clicked" />
-      <keyword name="EditorAPIsPage.on_apiFileButton_clicked" id="EditorAPIsPage.on_apiFileButton_clicked" ref="eric6.Preferences.ConfigurationPages.EditorAPIsPage.html#EditorAPIsPage.on_apiFileButton_clicked" />
-      <keyword name="EditorAPIsPage.on_apiFileEdit_textChanged" id="EditorAPIsPage.on_apiFileEdit_textChanged" ref="eric6.Preferences.ConfigurationPages.EditorAPIsPage.html#EditorAPIsPage.on_apiFileEdit_textChanged" />
+      <keyword name="EditorAPIsPage.on_apiFilePicker_textChanged" id="EditorAPIsPage.on_apiFilePicker_textChanged" ref="eric6.Preferences.ConfigurationPages.EditorAPIsPage.html#EditorAPIsPage.on_apiFilePicker_textChanged" />
       <keyword name="EditorAPIsPage.on_apiLanguageComboBox_activated" id="EditorAPIsPage.on_apiLanguageComboBox_activated" ref="eric6.Preferences.ConfigurationPages.EditorAPIsPage.html#EditorAPIsPage.on_apiLanguageComboBox_activated" />
       <keyword name="EditorAPIsPage.on_apiList_itemSelectionChanged" id="EditorAPIsPage.on_apiList_itemSelectionChanged" ref="eric6.Preferences.ConfigurationPages.EditorAPIsPage.html#EditorAPIsPage.on_apiList_itemSelectionChanged" />
       <keyword name="EditorAPIsPage.on_deleteApiFileButton_clicked" id="EditorAPIsPage.on_deleteApiFileButton_clicked" ref="eric6.Preferences.ConfigurationPages.EditorAPIsPage.html#EditorAPIsPage.on_deleteApiFileButton_clicked" />
@@ -13313,7 +13303,6 @@
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html#create" />
-      <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.DebuggerRubyPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.EditorAPIsPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.EditorAutocompletionPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.EditorAutocompletionQScintillaPage.html#create" />
@@ -14512,7 +14501,6 @@
       <file>eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html</file>
       <file>eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html</file>
-      <file>eric6.Preferences.ConfigurationPages.DebuggerRubyPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.EditorAPIsPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.EditorAutocompletionPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.EditorAutocompletionQScintillaPage.html</file>
--- a/Documentation/Source/eric6.E5Gui.E5PathPicker.html	Tue Nov 24 19:42:42 2015 +0100
+++ b/Documentation/Source/eric6.E5Gui.E5PathPicker.html	Wed Nov 25 19:01:45 2015 +0100
@@ -47,7 +47,13 @@
 <p>
     Class implementing a path picker widget consisting of a line edit and a
     tool button to open a file dialog.
-</p>
+</p><h3>Signals</h3>
+<dl>
+<dt>textChanged(path)</dt>
+<dd>
+emitted when the entered path has changed
+</dd>
+</dl>
 <h3>Derived from</h3>
 QWidget
 <h3>Class Attributes</h3>
@@ -70,6 +76,9 @@
 <td><a href="#E5PathPicker.buttonToolTip">buttonToolTip</a></td>
 <td>Public method to get the tool button tool tip.</td>
 </tr><tr>
+<td><a href="#E5PathPicker.clear">clear</a></td>
+<td>Public method to clear the current path.</td>
+</tr><tr>
 <td><a href="#E5PathPicker.defaultDirectory">defaultDirectory</a></td>
 <td>Public method to get the default directory.</td>
 </tr><tr>
@@ -156,7 +165,12 @@
 <dd>
 str
 </dd>
-</dl><a NAME="E5PathPicker.defaultDirectory" ID="E5PathPicker.defaultDirectory"></a>
+</dl><a NAME="E5PathPicker.clear" ID="E5PathPicker.clear"></a>
+<h4>E5PathPicker.clear</h4>
+<b>clear</b>(<i></i>)
+<p>
+        Public method to clear the current path.
+</p><a NAME="E5PathPicker.defaultDirectory" ID="E5PathPicker.defaultDirectory"></a>
 <h4>E5PathPicker.defaultDirectory</h4>
 <b>defaultDirectory</b>(<i></i>)
 <p>
--- a/Documentation/Source/eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html	Tue Nov 24 19:42:42 2015 +0100
+++ b/Documentation/Source/eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html	Wed Nov 25 19:01:45 2015 +0100
@@ -63,12 +63,6 @@
 <td><a href="#DebuggerPython3Page.__init__">DebuggerPython3Page</a></td>
 <td>Constructor</td>
 </tr><tr>
-<td><a href="#DebuggerPython3Page.on_debugClientButton_clicked">on_debugClientButton_clicked</a></td>
-<td>Private slot to handle the Debug Client selection.</td>
-</tr><tr>
-<td><a href="#DebuggerPython3Page.on_interpreterButton_clicked">on_interpreterButton_clicked</a></td>
-<td>Private slot to handle the Python interpreter selection.</td>
-</tr><tr>
 <td><a href="#DebuggerPython3Page.save">save</a></td>
 <td>Public slot to save the Debugger Python configuration.</td>
 </tr>
@@ -82,16 +76,6 @@
 <b>DebuggerPython3Page</b>(<i></i>)
 <p>
         Constructor
-</p><a NAME="DebuggerPython3Page.on_debugClientButton_clicked" ID="DebuggerPython3Page.on_debugClientButton_clicked"></a>
-<h4>DebuggerPython3Page.on_debugClientButton_clicked</h4>
-<b>on_debugClientButton_clicked</b>(<i></i>)
-<p>
-        Private slot to handle the Debug Client selection.
-</p><a NAME="DebuggerPython3Page.on_interpreterButton_clicked" ID="DebuggerPython3Page.on_interpreterButton_clicked"></a>
-<h4>DebuggerPython3Page.on_interpreterButton_clicked</h4>
-<b>on_interpreterButton_clicked</b>(<i></i>)
-<p>
-        Private slot to handle the Python interpreter selection.
 </p><a NAME="DebuggerPython3Page.save" ID="DebuggerPython3Page.save"></a>
 <h4>DebuggerPython3Page.save</h4>
 <b>save</b>(<i></i>)
--- a/Documentation/Source/eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html	Tue Nov 24 19:42:42 2015 +0100
+++ b/Documentation/Source/eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html	Wed Nov 25 19:01:45 2015 +0100
@@ -63,12 +63,6 @@
 <td><a href="#DebuggerPythonPage.__init__">DebuggerPythonPage</a></td>
 <td>Constructor</td>
 </tr><tr>
-<td><a href="#DebuggerPythonPage.on_debugClientButton_clicked">on_debugClientButton_clicked</a></td>
-<td>Private slot to handle the Debug Client selection.</td>
-</tr><tr>
-<td><a href="#DebuggerPythonPage.on_interpreterButton_clicked">on_interpreterButton_clicked</a></td>
-<td>Private slot to handle the Python interpreter selection.</td>
-</tr><tr>
 <td><a href="#DebuggerPythonPage.save">save</a></td>
 <td>Public slot to save the Debugger Python configuration.</td>
 </tr>
@@ -82,16 +76,6 @@
 <b>DebuggerPythonPage</b>(<i></i>)
 <p>
         Constructor
-</p><a NAME="DebuggerPythonPage.on_debugClientButton_clicked" ID="DebuggerPythonPage.on_debugClientButton_clicked"></a>
-<h4>DebuggerPythonPage.on_debugClientButton_clicked</h4>
-<b>on_debugClientButton_clicked</b>(<i></i>)
-<p>
-        Private slot to handle the Debug Client selection.
-</p><a NAME="DebuggerPythonPage.on_interpreterButton_clicked" ID="DebuggerPythonPage.on_interpreterButton_clicked"></a>
-<h4>DebuggerPythonPage.on_interpreterButton_clicked</h4>
-<b>on_interpreterButton_clicked</b>(<i></i>)
-<p>
-        Private slot to handle the Python interpreter selection.
 </p><a NAME="DebuggerPythonPage.save" ID="DebuggerPythonPage.save"></a>
 <h4>DebuggerPythonPage.save</h4>
 <b>save</b>(<i></i>)
--- a/Documentation/Source/eric6.Preferences.ConfigurationPages.DebuggerRubyPage.html	Tue Nov 24 19:42:42 2015 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Preferences.ConfigurationPages.DebuggerRubyPage</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Preferences.ConfigurationPages.DebuggerRubyPage</h1>
-<p>
-Module implementing the Debugger Ruby configuration page.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#DebuggerRubyPage">DebuggerRubyPage</a></td>
-<td>Class implementing the Debugger Ruby configuration page.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#create">create</a></td>
-<td>Module function to create the configuration page.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="DebuggerRubyPage" ID="DebuggerRubyPage"></a>
-<h2>DebuggerRubyPage</h2>
-<p>
-    Class implementing the Debugger Ruby configuration page.
-</p>
-<h3>Derived from</h3>
-ConfigurationPageBase, Ui_DebuggerRubyPage
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#DebuggerRubyPage.__init__">DebuggerRubyPage</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#DebuggerRubyPage.on_rubyInterpreterButton_clicked">on_rubyInterpreterButton_clicked</a></td>
-<td>Private slot to handle the Ruby interpreter selection.</td>
-</tr><tr>
-<td><a href="#DebuggerRubyPage.save">save</a></td>
-<td>Public slot to save the Debugger Ruby configuration.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="DebuggerRubyPage.__init__" ID="DebuggerRubyPage.__init__"></a>
-<h4>DebuggerRubyPage (Constructor)</h4>
-<b>DebuggerRubyPage</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="DebuggerRubyPage.on_rubyInterpreterButton_clicked" ID="DebuggerRubyPage.on_rubyInterpreterButton_clicked"></a>
-<h4>DebuggerRubyPage.on_rubyInterpreterButton_clicked</h4>
-<b>on_rubyInterpreterButton_clicked</b>(<i></i>)
-<p>
-        Private slot to handle the Ruby interpreter selection.
-</p><a NAME="DebuggerRubyPage.save" ID="DebuggerRubyPage.save"></a>
-<h4>DebuggerRubyPage.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public slot to save the Debugger Ruby configuration.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="create" ID="create"></a>
-<h2>create</h2>
-<b>create</b>(<i>dlg</i>)
-<p>
-    Module function to create the configuration page.
-</p><dl>
-<dt><i>dlg</i></dt>
-<dd>
-reference to the configuration dialog
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the instantiated page (ConfigurationPageBase)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric6.Preferences.ConfigurationPages.EditorAPIsPage.html	Tue Nov 24 19:42:42 2015 +0100
+++ b/Documentation/Source/eric6.Preferences.ConfigurationPages.EditorAPIsPage.html	Wed Nov 25 19:01:45 2015 +0100
@@ -84,10 +84,7 @@
 <td><a href="#EditorAPIsPage.on_addPluginApiFileButton_clicked">on_addPluginApiFileButton_clicked</a></td>
 <td>Private slot to add an API file from the list of API files installed by plugins for the selected lexer language.</td>
 </tr><tr>
-<td><a href="#EditorAPIsPage.on_apiFileButton_clicked">on_apiFileButton_clicked</a></td>
-<td>Private method to select an api file.</td>
-</tr><tr>
-<td><a href="#EditorAPIsPage.on_apiFileEdit_textChanged">on_apiFileEdit_textChanged</a></td>
+<td><a href="#EditorAPIsPage.on_apiFilePicker_textChanged">on_apiFilePicker_textChanged</a></td>
 <td>Private slot to handle the entering of an API file name.</td>
 </tr><tr>
 <td><a href="#EditorAPIsPage.on_apiLanguageComboBox_activated">on_apiLanguageComboBox_activated</a></td>
@@ -163,14 +160,9 @@
 <p>
         Private slot to add an API file from the list of API files installed
         by plugins for the selected lexer language.
-</p><a NAME="EditorAPIsPage.on_apiFileButton_clicked" ID="EditorAPIsPage.on_apiFileButton_clicked"></a>
-<h4>EditorAPIsPage.on_apiFileButton_clicked</h4>
-<b>on_apiFileButton_clicked</b>(<i></i>)
-<p>
-        Private method to select an api file.
-</p><a NAME="EditorAPIsPage.on_apiFileEdit_textChanged" ID="EditorAPIsPage.on_apiFileEdit_textChanged"></a>
-<h4>EditorAPIsPage.on_apiFileEdit_textChanged</h4>
-<b>on_apiFileEdit_textChanged</b>(<i>txt</i>)
+</p><a NAME="EditorAPIsPage.on_apiFilePicker_textChanged" ID="EditorAPIsPage.on_apiFilePicker_textChanged"></a>
+<h4>EditorAPIsPage.on_apiFilePicker_textChanged</h4>
+<b>on_apiFilePicker_textChanged</b>(<i>txt</i>)
 <p>
         Private slot to handle the entering of an API file name.
 </p><dl>
--- a/Documentation/Source/index-eric6.Preferences.ConfigurationPages.html	Tue Nov 24 19:42:42 2015 +0100
+++ b/Documentation/Source/index-eric6.Preferences.ConfigurationPages.html	Wed Nov 25 19:01:45 2015 +0100
@@ -49,9 +49,6 @@
 <td><a href="eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html">DebuggerPythonPage</a></td>
 <td>Module implementing the Debugger Python configuration page.</td>
 </tr><tr>
-<td><a href="eric6.Preferences.ConfigurationPages.DebuggerRubyPage.html">DebuggerRubyPage</a></td>
-<td>Module implementing the Debugger Ruby configuration page.</td>
-</tr><tr>
 <td><a href="eric6.Preferences.ConfigurationPages.EditorAPIsPage.html">EditorAPIsPage</a></td>
 <td>Module implementing the Editor APIs configuration page.</td>
 </tr><tr>
--- a/E5Gui/E5PathPicker.py	Tue Nov 24 19:42:42 2015 +0100
+++ b/E5Gui/E5PathPicker.py	Wed Nov 25 19:01:45 2015 +0100
@@ -16,7 +16,7 @@
 except ImportError:
     from ThirdParty.enum import Enum
 
-from PyQt5.QtCore import Qt
+from PyQt5.QtCore import pyqtSignal, Qt
 from PyQt5.QtWidgets import QWidget, QHBoxLayout, QToolButton
 
 from . import E5FileDialog
@@ -41,9 +41,13 @@
     """
     Class implementing a path picker widget consisting of a line edit and a
     tool button to open a file dialog.
+    
+    @signal textChanged(path) emitted when the entered path has changed
     """
     DefaultMode = E5PathPickerModes.OpenFileMode
     
+    textChanged = pyqtSignal(str)
+    
     def __init__(self, parent=None):
         """
         Constructor
@@ -76,6 +80,7 @@
         self.__layout.addWidget(self.__button)
         
         self.__button.clicked.connect(self.__showPathPickerDialog)
+        self.__editor.textChanged.connect(self.textChanged)
     
     def setMode(self, mode):
         """
@@ -109,6 +114,12 @@
         """
         return self.__mode
     
+    def clear(self):
+        """
+        Public method to clear the current path.
+        """
+        self.__editor.clear()
+    
     def setText(self, path):
         """
         Public method to set the current path.
--- a/Preferences/ConfigurationPages/DebuggerPython3Page.py	Tue Nov 24 19:42:42 2015 +0100
+++ b/Preferences/ConfigurationPages/DebuggerPython3Page.py	Wed Nov 25 19:01:45 2015 +0100
@@ -37,6 +37,7 @@
         self.debugClientPicker.setMode(E5PathPickerModes.OpenFileMode)
         self.debugClientPicker.setToolTip(self.tr(
             "Press to select the Debug Client via a file selection dialog"))
+        self.debugClientPicker.setFilters(self.tr("Python Files (*.py *.py3)"))
         
         # set initial values
         self.interpreterPicker.setText(
--- a/Preferences/ConfigurationPages/DebuggerPythonPage.py	Tue Nov 24 19:42:42 2015 +0100
+++ b/Preferences/ConfigurationPages/DebuggerPythonPage.py	Wed Nov 25 19:01:45 2015 +0100
@@ -9,17 +9,12 @@
 
 from __future__ import unicode_literals
 
-from PyQt5.QtCore import pyqtSlot
-
-from E5Gui.E5Completers import E5FileCompleter
-from E5Gui import E5FileDialog
+from E5Gui.E5PathPicker import E5PathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_DebuggerPythonPage import Ui_DebuggerPythonPage
 
 import Preferences
-import Utilities
-import UI.PixmapCache
 
 
 class DebuggerPythonPage(ConfigurationPageBase, Ui_DebuggerPythonPage):
@@ -34,14 +29,18 @@
         self.setupUi(self)
         self.setObjectName("DebuggerPythonPage")
         
-        self.interpreterButton.setIcon(UI.PixmapCache.getIcon("open.png"))
-        self.debugClientButton.setIcon(UI.PixmapCache.getIcon("open.png"))
+        self.interpreterPicker.setMode(E5PathPickerModes.OpenFileMode)
+        self.interpreterPicker.setToolTip(self.tr(
+            "Press to select the Python interpreter via a file selection"
+            " dialog"))
         
-        self.interpreterCompleter = E5FileCompleter(self.interpreterEdit)
-        self.debugClientCompleter = E5FileCompleter(self.debugClientEdit)
+        self.debugClientPicker.setMode(E5PathPickerModes.OpenFileMode)
+        self.debugClientPicker.setToolTip(self.tr(
+            "Press to select the Debug Client via a file selection dialog"))
+        self.debugClientPicker.setFilters(self.tr("Python Files (*.py *.py2)"))
         
         # set initial values
-        self.interpreterEdit.setText(
+        self.interpreterPicker.setText(
             Preferences.getDebugger("PythonInterpreter"))
         dct = Preferences.getDebugger("DebugClientType")
         if dct == "standard":
@@ -50,7 +49,7 @@
             self.threadedButton.setChecked(True)
         else:
             self.customButton.setChecked(True)
-        self.debugClientEdit.setText(
+        self.debugClientPicker.setText(
             Preferences.getDebugger("DebugClient"))
         self.pyRedirectCheckBox.setChecked(
             Preferences.getDebugger("PythonRedirect"))
@@ -65,7 +64,7 @@
         """
         Preferences.setDebugger(
             "PythonInterpreter",
-            self.interpreterEdit.text())
+            self.interpreterPicker.text())
         if self.standardButton.isChecked():
             dct = "standard"
         elif self.threadedButton.isChecked():
@@ -75,7 +74,7 @@
         Preferences.setDebugger("DebugClientType", dct)
         Preferences.setDebugger(
             "DebugClient",
-            self.debugClientEdit.text())
+            self.debugClientPicker.text())
         Preferences.setDebugger(
             "PythonRedirect",
             self.pyRedirectCheckBox.isChecked())
@@ -85,36 +84,6 @@
         Preferences.setDebugger(
             "PythonExtensions",
             self.sourceExtensionsEdit.text())
-        
-    @pyqtSlot()
-    def on_interpreterButton_clicked(self):
-        """
-        Private slot to handle the Python interpreter selection.
-        """
-        file = E5FileDialog.getOpenFileName(
-            self,
-            self.tr("Select Python interpreter for Debug Client"),
-            self.interpreterEdit.text(),
-            "")
-            
-        if file:
-            self.interpreterEdit.setText(
-                Utilities.toNativeSeparators(file))
-        
-    @pyqtSlot()
-    def on_debugClientButton_clicked(self):
-        """
-        Private slot to handle the Debug Client selection.
-        """
-        file = E5FileDialog.getOpenFileName(
-            None,
-            self.tr("Select Debug Client"),
-            self.debugClientEdit.text(),
-            self.tr("Python Files (*.py *.py2)"))
-            
-        if file:
-            self.debugClientEdit.setText(
-                Utilities.toNativeSeparators(file))
     
 
 def create(dlg):
--- a/Preferences/ConfigurationPages/DebuggerPythonPage.ui	Tue Nov 24 19:42:42 2015 +0100
+++ b/Preferences/ConfigurationPages/DebuggerPythonPage.ui	Wed Nov 25 19:01:45 2015 +0100
@@ -36,21 +36,17 @@
      <property name="title">
       <string>Python Interpreter for Debug Client</string>
      </property>
-     <layout class="QGridLayout">
-      <item row="0" column="0">
-       <widget class="QLineEdit" name="interpreterEdit">
+     <layout class="QVBoxLayout" name="verticalLayout_3">
+      <item>
+       <widget class="E5PathPicker" name="interpreterPicker" native="true">
+        <property name="focusPolicy">
+         <enum>Qt::StrongFocus</enum>
+        </property>
         <property name="toolTip">
          <string>Enter the path of the Python interpreter to be used by the debug client.</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="1">
-       <widget class="QToolButton" name="interpreterButton">
-        <property name="toolTip">
-         <string>Press to select the Python interpreter via a file selection dialog</string>
-        </property>
-       </widget>
-      </item>
      </layout>
     </widget>
    </item>
@@ -59,31 +55,7 @@
      <property name="title">
       <string>Debug Client Type</string>
      </property>
-     <layout class="QGridLayout">
-      <item row="1" column="0" colspan="3">
-       <layout class="QHBoxLayout">
-        <item>
-         <widget class="QLineEdit" name="debugClientEdit">
-          <property name="enabled">
-           <bool>false</bool>
-          </property>
-          <property name="toolTip">
-           <string>Enter the path of the Debug Client to be used.  Leave empty to use the default.</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QToolButton" name="debugClientButton">
-          <property name="enabled">
-           <bool>false</bool>
-          </property>
-          <property name="toolTip">
-           <string>Press to select the Debug Client via a file selection dialog</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
+     <layout class="QGridLayout" name="gridLayout">
       <item row="0" column="0">
        <widget class="QRadioButton" name="standardButton">
         <property name="toolTip">
@@ -94,6 +66,16 @@
         </property>
        </widget>
       </item>
+      <item row="0" column="1">
+       <widget class="QRadioButton" name="threadedButton">
+        <property name="toolTip">
+         <string>Select the multi threaded debug client</string>
+        </property>
+        <property name="text">
+         <string>Multi Threaded</string>
+        </property>
+       </widget>
+      </item>
       <item row="0" column="2">
        <widget class="QRadioButton" name="customButton">
         <property name="toolTip">
@@ -104,13 +86,16 @@
         </property>
        </widget>
       </item>
-      <item row="0" column="1">
-       <widget class="QRadioButton" name="threadedButton">
+      <item row="1" column="0" colspan="3">
+       <widget class="E5PathPicker" name="debugClientPicker" native="true">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="focusPolicy">
+         <enum>Qt::StrongFocus</enum>
+        </property>
         <property name="toolTip">
-         <string>Select the multi threaded debug client</string>
-        </property>
-        <property name="text">
-         <string>Multi Threaded</string>
+         <string>Enter the path of the Debug Client to be used.  Leave empty to use the default.</string>
         </property>
        </widget>
       </item>
@@ -174,14 +159,20 @@
    </item>
   </layout>
  </widget>
+ <customwidgets>
+  <customwidget>
+   <class>E5PathPicker</class>
+   <extends>QWidget</extends>
+   <header>E5Gui/E5PathPicker.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
  <tabstops>
-  <tabstop>interpreterEdit</tabstop>
-  <tabstop>interpreterButton</tabstop>
+  <tabstop>interpreterPicker</tabstop>
   <tabstop>standardButton</tabstop>
   <tabstop>threadedButton</tabstop>
   <tabstop>customButton</tabstop>
-  <tabstop>debugClientEdit</tabstop>
-  <tabstop>debugClientButton</tabstop>
+  <tabstop>debugClientPicker</tabstop>
   <tabstop>sourceExtensionsEdit</tabstop>
   <tabstop>pyRedirectCheckBox</tabstop>
   <tabstop>pyNoEncodingCheckBox</tabstop>
@@ -191,16 +182,16 @@
   <connection>
    <sender>customButton</sender>
    <signal>toggled(bool)</signal>
-   <receiver>debugClientEdit</receiver>
+   <receiver>debugClientPicker</receiver>
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>368</x>
-     <y>194</y>
+     <x>328</x>
+     <y>116</y>
     </hint>
     <hint type="destinationlabel">
-     <x>332</x>
-     <y>219</y>
+     <x>328</x>
+     <y>135</y>
     </hint>
    </hints>
   </connection>
--- a/Preferences/ConfigurationPages/DebuggerRubyPage.py	Tue Nov 24 19:42:42 2015 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2006 - 2015 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the Debugger Ruby configuration page.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot
-
-from E5Gui.E5Completers import E5FileCompleter
-from E5Gui import E5FileDialog
-
-from .ConfigurationPageBase import ConfigurationPageBase
-from .Ui_DebuggerRubyPage import Ui_DebuggerRubyPage
-
-import Preferences
-import Utilities
-import UI.PixmapCache
-
-
-class DebuggerRubyPage(ConfigurationPageBase, Ui_DebuggerRubyPage):
-    """
-    Class implementing the Debugger Ruby configuration page.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        super(DebuggerRubyPage, self).__init__()
-        self.setupUi(self)
-        self.setObjectName("DebuggerRubyPage")
-        
-        self.rubyInterpreterButton.setIcon(UI.PixmapCache.getIcon("open.png"))
-        
-        self.rubyInterpreterCompleter = E5FileCompleter(
-            self.rubyInterpreterEdit)
-        
-        # set initial values
-        self.rubyInterpreterEdit.setText(
-            Preferences.getDebugger("RubyInterpreter"))
-        self.rbRedirectCheckBox.setChecked(
-            Preferences.getDebugger("RubyRedirect"))
-        
-    def save(self):
-        """
-        Public slot to save the Debugger Ruby configuration.
-        """
-        Preferences.setDebugger(
-            "RubyInterpreter",
-            self.rubyInterpreterEdit.text())
-        Preferences.setDebugger(
-            "RubyRedirect",
-            self.rbRedirectCheckBox.isChecked())
-        
-    @pyqtSlot()
-    def on_rubyInterpreterButton_clicked(self):
-        """
-        Private slot to handle the Ruby interpreter selection.
-        """
-        file = E5FileDialog.getOpenFileName(
-            self,
-            self.tr("Select Ruby interpreter for Debug Client"),
-            self.rubyInterpreterEdit.text())
-            
-        if file:
-            self.rubyInterpreterEdit.setText(
-                Utilities.toNativeSeparators(file))
-    
-
-def create(dlg):
-    """
-    Module function to create the configuration page.
-    
-    @param dlg reference to the configuration dialog
-    @return reference to the instantiated page (ConfigurationPageBase)
-    """
-    page = DebuggerRubyPage()
-    return page
--- a/Preferences/ConfigurationPages/DebuggerRubyPage.ui	Tue Nov 24 19:42:42 2015 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>DebuggerRubyPage</class>
- <widget class="QWidget" name="DebuggerRubyPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>170</height>
-   </rect>
-  </property>
-  <layout class="QVBoxLayout">
-   <item>
-    <widget class="QLabel" name="headerLabel">
-     <property name="text">
-      <string>&lt;b&gt;Configure Ruby Debugger&lt;/b&gt;</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="Line" name="line11_2_2">
-     <property name="frameShape">
-      <enum>QFrame::HLine</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Sunken</enum>
-     </property>
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>Ruby Interpreter for Debug Client</string>
-     </property>
-     <layout class="QHBoxLayout">
-      <item>
-       <widget class="QLineEdit" name="rubyInterpreterEdit">
-        <property name="toolTip">
-         <string>Enter the path of the Ruby interpreter to be used by the debug client.</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QToolButton" name="rubyInterpreterButton">
-        <property name="toolTip">
-         <string>Press to select the Ruby interpreter via a file selection dialog</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="rbRedirectCheckBox">
-     <property name="toolTip">
-      <string>Select, to redirect stdin, stdout and stderr of the program being debugged to the eric6 IDE</string>
-     </property>
-     <property name="text">
-      <string>Redirect stdin/stdout/stderr</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <spacer>
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>40</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
--- a/Preferences/ConfigurationPages/EditorAPIsPage.py	Tue Nov 24 19:42:42 2015 +0100
+++ b/Preferences/ConfigurationPages/EditorAPIsPage.py	Wed Nov 25 19:01:45 2015 +0100
@@ -13,15 +13,14 @@
 from PyQt5.QtWidgets import QInputDialog
 
 from E5Gui.E5Application import e5App
-from E5Gui.E5Completers import E5FileCompleter
-from E5Gui import E5FileDialog, E5MessageBox
+from E5Gui import E5MessageBox
+from E5Gui.E5PathPicker import E5PathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EditorAPIsPage import Ui_EditorAPIsPage
 
 import Preferences
 import Utilities
-import UI.PixmapCache
 
 
 class EditorAPIsPage(ConfigurationPageBase, Ui_EditorAPIsPage):
@@ -36,14 +35,16 @@
         self.setupUi(self)
         self.setObjectName("EditorAPIsPage")
         
-        self.apiFileButton.setIcon(UI.PixmapCache.getIcon("open.png"))
+        self.apiFilePicker.setMode(E5PathPickerModes.OpenFileMode)
+        self.apiFilePicker.setToolTip(self.tr(
+            "Press to select an API file via a selection dialog"))
+        self.apiFilePicker.setFilters(self.tr(
+            "API File (*.api);;All Files (*)"))
         
         self.prepareApiButton.setText(self.tr("Compile APIs"))
         self.__currentAPI = None
         self.__inPreparation = False
         
-        self.apiFileCompleter = E5FileCompleter(self.apiFileEdit)
-        
         # set initial values
         self.pluginManager = e5App().getObject("PluginManager")
         self.apiAutoPrepareCheckBox.setChecked(
@@ -97,7 +98,7 @@
         self.apiGroup.setEnabled(True)
         self.deleteApiFileButton.setEnabled(False)
         self.addApiFileButton.setEnabled(False)
-        self.apiFileEdit.clear()
+        self.apiFilePicker.clear()
         
         for api in self.apis[self.currentApiLanguage]:
             if api:
@@ -134,28 +135,14 @@
         return apis
         
     @pyqtSlot()
-    def on_apiFileButton_clicked(self):
-        """
-        Private method to select an api file.
-        """
-        file = E5FileDialog.getOpenFileName(
-            self,
-            self.tr("Select API file"),
-            self.apiFileEdit.text(),
-            self.tr("API File (*.api);;All Files (*)"))
-            
-        if file:
-            self.apiFileEdit.setText(Utilities.toNativeSeparators(file))
-        
-    @pyqtSlot()
     def on_addApiFileButton_clicked(self):
         """
         Private slot to add the api file displayed to the listbox.
         """
-        file = self.apiFileEdit.text()
+        file = self.apiFilePicker.text()
         if file:
             self.apiList.addItem(Utilities.toNativeSeparators(file))
-            self.apiFileEdit.clear()
+            self.apiFilePicker.clear()
         self.prepareApiButton.setEnabled(self.apiList.count() > 0)
         
     @pyqtSlot()
@@ -290,7 +277,7 @@
             len(self.apiList.selectedItems()) > 0)
     
     @pyqtSlot(str)
-    def on_apiFileEdit_textChanged(self, txt):
+    def on_apiFilePicker_textChanged(self, txt):
         """
         Private slot to handle the entering of an API file name.
         
--- a/Preferences/ConfigurationPages/EditorAPIsPage.ui	Tue Nov 24 19:42:42 2015 +0100
+++ b/Preferences/ConfigurationPages/EditorAPIsPage.ui	Wed Nov 25 19:01:45 2015 +0100
@@ -79,8 +79,8 @@
      <property name="title">
       <string>APIs</string>
      </property>
-     <layout class="QGridLayout">
-      <item row="0" column="0" colspan="4">
+     <layout class="QGridLayout" name="gridLayout">
+      <item row="0" column="0" colspan="3">
        <widget class="QListWidget" name="apiList">
         <property name="toolTip">
          <string>List of API files</string>
@@ -111,13 +111,19 @@
        </widget>
       </item>
       <item row="1" column="2">
-       <widget class="QLineEdit" name="apiFileEdit">
-        <property name="toolTip">
-         <string>Enter a file to be added</string>
+       <widget class="E5PathPicker" name="apiFilePicker" native="true">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="focusPolicy">
+         <enum>Qt::StrongFocus</enum>
         </property>
        </widget>
       </item>
-      <item row="2" column="1" colspan="3">
+      <item row="2" column="1" colspan="2">
        <widget class="QPushButton" name="addInstalledApiFileButton">
         <property name="toolTip">
          <string>Press to select an API file from the list of installed API files</string>
@@ -127,7 +133,7 @@
         </property>
        </widget>
       </item>
-      <item row="3" column="1" colspan="3">
+      <item row="3" column="1" colspan="2">
        <widget class="QPushButton" name="addPluginApiFileButton">
         <property name="toolTip">
          <string>Press to select an API file from the list of API files installed by plugins</string>
@@ -137,14 +143,14 @@
         </property>
        </widget>
       </item>
-      <item row="4" column="0" colspan="4">
+      <item row="4" column="0" colspan="3">
        <widget class="Line" name="line">
         <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
        </widget>
       </item>
-      <item row="5" column="0" colspan="2">
+      <item row="5" column="0">
        <widget class="QPushButton" name="prepareApiButton">
         <property name="toolTip">
          <string>Press to compile the selected APIs definition</string>
@@ -154,7 +160,7 @@
         </property>
        </widget>
       </item>
-      <item row="5" column="2" colspan="2">
+      <item row="5" column="1" colspan="2">
        <widget class="QProgressBar" name="prepareApiProgressBar">
         <property name="value">
          <number>0</number>
@@ -167,26 +173,26 @@
         </property>
        </widget>
       </item>
-      <item row="1" column="3">
-       <widget class="QToolButton" name="apiFileButton">
-        <property name="toolTip">
-         <string>Press to select an API file via a selection dialog</string>
-        </property>
-       </widget>
-      </item>
      </layout>
     </widget>
    </item>
   </layout>
  </widget>
+ <customwidgets>
+  <customwidget>
+   <class>E5PathPicker</class>
+   <extends>QWidget</extends>
+   <header>E5Gui/E5PathPicker.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
  <tabstops>
   <tabstop>apiAutoPrepareCheckBox</tabstop>
   <tabstop>apiLanguageComboBox</tabstop>
   <tabstop>apiList</tabstop>
   <tabstop>deleteApiFileButton</tabstop>
-  <tabstop>apiFileEdit</tabstop>
-  <tabstop>apiFileButton</tabstop>
   <tabstop>addApiFileButton</tabstop>
+  <tabstop>apiFilePicker</tabstop>
   <tabstop>addInstalledApiFileButton</tabstop>
   <tabstop>addPluginApiFileButton</tabstop>
   <tabstop>prepareApiButton</tabstop>
--- a/eric6.e4p	Tue Nov 24 19:42:42 2015 +0100
+++ b/eric6.e4p	Wed Nov 25 19:01:45 2015 +0100
@@ -26,54 +26,6 @@
     <Source>DataViews/PyCoverageDialog.py</Source>
     <Source>DataViews/PyProfileDialog.py</Source>
     <Source>DataViews/__init__.py</Source>
-    <Source>DebugClients/Python/AsyncFile.py</Source>
-    <Source>DebugClients/Python/AsyncIO.py</Source>
-    <Source>DebugClients/Python/DCTestResult.py</Source>
-    <Source>DebugClients/Python/DebugBase.py</Source>
-    <Source>DebugClients/Python/DebugClient.py</Source>
-    <Source>DebugClients/Python/DebugClientBase.py</Source>
-    <Source>DebugClients/Python/DebugClientCapabilities.py</Source>
-    <Source>DebugClients/Python/DebugClientThreads.py</Source>
-    <Source>DebugClients/Python/DebugConfig.py</Source>
-    <Source>DebugClients/Python/DebugProtocol.py</Source>
-    <Source>DebugClients/Python/DebugThread.py</Source>
-    <Source>DebugClients/Python/FlexCompleter.py</Source>
-    <Source>DebugClients/Python/PyProfile.py</Source>
-    <Source>DebugClients/Python/__init__.py</Source>
-    <Source>DebugClients/Python/coverage/__init__.py</Source>
-    <Source>DebugClients/Python/coverage/__main__.py</Source>
-    <Source>DebugClients/Python/coverage/annotate.py</Source>
-    <Source>DebugClients/Python/coverage/backunittest.py</Source>
-    <Source>DebugClients/Python/coverage/backward.py</Source>
-    <Source>DebugClients/Python/coverage/bytecode.py</Source>
-    <Source>DebugClients/Python/coverage/cmdline.py</Source>
-    <Source>DebugClients/Python/coverage/collector.py</Source>
-    <Source>DebugClients/Python/coverage/config.py</Source>
-    <Source>DebugClients/Python/coverage/control.py</Source>
-    <Source>DebugClients/Python/coverage/data.py</Source>
-    <Source>DebugClients/Python/coverage/debug.py</Source>
-    <Source>DebugClients/Python/coverage/env.py</Source>
-    <Source>DebugClients/Python/coverage/execfile.py</Source>
-    <Source>DebugClients/Python/coverage/files.py</Source>
-    <Source>DebugClients/Python/coverage/html.py</Source>
-    <Source>DebugClients/Python/coverage/misc.py</Source>
-    <Source>DebugClients/Python/coverage/monkey.py</Source>
-    <Source>DebugClients/Python/coverage/parser.py</Source>
-    <Source>DebugClients/Python/coverage/phystokens.py</Source>
-    <Source>DebugClients/Python/coverage/pickle2json.py</Source>
-    <Source>DebugClients/Python/coverage/plugin.py</Source>
-    <Source>DebugClients/Python/coverage/plugin_support.py</Source>
-    <Source>DebugClients/Python/coverage/python.py</Source>
-    <Source>DebugClients/Python/coverage/pytracer.py</Source>
-    <Source>DebugClients/Python/coverage/report.py</Source>
-    <Source>DebugClients/Python/coverage/results.py</Source>
-    <Source>DebugClients/Python/coverage/summary.py</Source>
-    <Source>DebugClients/Python/coverage/templite.py</Source>
-    <Source>DebugClients/Python/coverage/test_helpers.py</Source>
-    <Source>DebugClients/Python/coverage/version.py</Source>
-    <Source>DebugClients/Python/coverage/xmlreport.py</Source>
-    <Source>DebugClients/Python/eric6dbgstub.py</Source>
-    <Source>DebugClients/Python/getpass.py</Source>
     <Source>DebugClients/Python3/AsyncFile.py</Source>
     <Source>DebugClients/Python3/AsyncIO.py</Source>
     <Source>DebugClients/Python3/DCTestResult.py</Source>
@@ -123,6 +75,54 @@
     <Source>DebugClients/Python3/coverage/xmlreport.py</Source>
     <Source>DebugClients/Python3/eric6dbgstub.py</Source>
     <Source>DebugClients/Python3/getpass.py</Source>
+    <Source>DebugClients/Python/AsyncFile.py</Source>
+    <Source>DebugClients/Python/AsyncIO.py</Source>
+    <Source>DebugClients/Python/DCTestResult.py</Source>
+    <Source>DebugClients/Python/DebugBase.py</Source>
+    <Source>DebugClients/Python/DebugClient.py</Source>
+    <Source>DebugClients/Python/DebugClientBase.py</Source>
+    <Source>DebugClients/Python/DebugClientCapabilities.py</Source>
+    <Source>DebugClients/Python/DebugClientThreads.py</Source>
+    <Source>DebugClients/Python/DebugConfig.py</Source>
+    <Source>DebugClients/Python/DebugProtocol.py</Source>
+    <Source>DebugClients/Python/DebugThread.py</Source>
+    <Source>DebugClients/Python/FlexCompleter.py</Source>
+    <Source>DebugClients/Python/PyProfile.py</Source>
+    <Source>DebugClients/Python/__init__.py</Source>
+    <Source>DebugClients/Python/coverage/__init__.py</Source>
+    <Source>DebugClients/Python/coverage/__main__.py</Source>
+    <Source>DebugClients/Python/coverage/annotate.py</Source>
+    <Source>DebugClients/Python/coverage/backunittest.py</Source>
+    <Source>DebugClients/Python/coverage/backward.py</Source>
+    <Source>DebugClients/Python/coverage/bytecode.py</Source>
+    <Source>DebugClients/Python/coverage/cmdline.py</Source>
+    <Source>DebugClients/Python/coverage/collector.py</Source>
+    <Source>DebugClients/Python/coverage/config.py</Source>
+    <Source>DebugClients/Python/coverage/control.py</Source>
+    <Source>DebugClients/Python/coverage/data.py</Source>
+    <Source>DebugClients/Python/coverage/debug.py</Source>
+    <Source>DebugClients/Python/coverage/env.py</Source>
+    <Source>DebugClients/Python/coverage/execfile.py</Source>
+    <Source>DebugClients/Python/coverage/files.py</Source>
+    <Source>DebugClients/Python/coverage/html.py</Source>
+    <Source>DebugClients/Python/coverage/misc.py</Source>
+    <Source>DebugClients/Python/coverage/monkey.py</Source>
+    <Source>DebugClients/Python/coverage/parser.py</Source>
+    <Source>DebugClients/Python/coverage/phystokens.py</Source>
+    <Source>DebugClients/Python/coverage/pickle2json.py</Source>
+    <Source>DebugClients/Python/coverage/plugin.py</Source>
+    <Source>DebugClients/Python/coverage/plugin_support.py</Source>
+    <Source>DebugClients/Python/coverage/python.py</Source>
+    <Source>DebugClients/Python/coverage/pytracer.py</Source>
+    <Source>DebugClients/Python/coverage/report.py</Source>
+    <Source>DebugClients/Python/coverage/results.py</Source>
+    <Source>DebugClients/Python/coverage/summary.py</Source>
+    <Source>DebugClients/Python/coverage/templite.py</Source>
+    <Source>DebugClients/Python/coverage/test_helpers.py</Source>
+    <Source>DebugClients/Python/coverage/version.py</Source>
+    <Source>DebugClients/Python/coverage/xmlreport.py</Source>
+    <Source>DebugClients/Python/eric6dbgstub.py</Source>
+    <Source>DebugClients/Python/getpass.py</Source>
     <Source>DebugClients/__init__.py</Source>
     <Source>Debugger/BreakPointModel.py</Source>
     <Source>Debugger/BreakPointViewer.py</Source>
@@ -759,7 +759,6 @@
     <Source>Preferences/ConfigurationPages/DebuggerGeneralPage.py</Source>
     <Source>Preferences/ConfigurationPages/DebuggerPython3Page.py</Source>
     <Source>Preferences/ConfigurationPages/DebuggerPythonPage.py</Source>
-    <Source>Preferences/ConfigurationPages/DebuggerRubyPage.py</Source>
     <Source>Preferences/ConfigurationPages/EditorAPIsPage.py</Source>
     <Source>Preferences/ConfigurationPages/EditorAutocompletionPage.py</Source>
     <Source>Preferences/ConfigurationPages/EditorAutocompletionQScintillaPage.py</Source>
@@ -1511,7 +1510,6 @@
     <Form>Preferences/ConfigurationPages/DebuggerGeneralPage.ui</Form>
     <Form>Preferences/ConfigurationPages/DebuggerPython3Page.ui</Form>
     <Form>Preferences/ConfigurationPages/DebuggerPythonPage.ui</Form>
-    <Form>Preferences/ConfigurationPages/DebuggerRubyPage.ui</Form>
     <Form>Preferences/ConfigurationPages/EditorAPIsPage.ui</Form>
     <Form>Preferences/ConfigurationPages/EditorAutocompletionPage.ui</Form>
     <Form>Preferences/ConfigurationPages/EditorAutocompletionQScintillaPage.ui</Form>
@@ -1654,14 +1652,14 @@
   <Interfaces/>
   <Others>
     <Other>.hgignore</Other>
-    <Other>APIs/Python/zope-2.10.7.api</Other>
-    <Other>APIs/Python/zope-2.11.2.api</Other>
-    <Other>APIs/Python/zope-3.3.1.api</Other>
     <Other>APIs/Python3/PyQt4.bas</Other>
     <Other>APIs/Python3/PyQt5.bas</Other>
     <Other>APIs/Python3/QScintilla2.bas</Other>
     <Other>APIs/Python3/eric6.api</Other>
     <Other>APIs/Python3/eric6.bas</Other>
+    <Other>APIs/Python/zope-2.10.7.api</Other>
+    <Other>APIs/Python/zope-2.11.2.api</Other>
+    <Other>APIs/Python/zope-3.3.1.api</Other>
     <Other>APIs/QSS/qss.api</Other>
     <Other>APIs/Ruby/Ruby-1.8.7.api</Other>
     <Other>APIs/Ruby/Ruby-1.8.7.bas</Other>
@@ -1670,8 +1668,8 @@
     <Other>CSSs</Other>
     <Other>CodeTemplates</Other>
     <Other>DTDs</Other>
+    <Other>DebugClients/Python3/coverage/doc</Other>
     <Other>DebugClients/Python/coverage/doc</Other>
-    <Other>DebugClients/Python3/coverage/doc</Other>
     <Other>DesignerTemplates</Other>
     <Other>Dictionaries</Other>
     <Other>Documentation/Help</Other>

eric ide

mercurial