Changed the Python3 debugger page to use the path picker.

Tue, 24 Nov 2015 19:42:42 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 24 Nov 2015 19:42:42 +0100
changeset 4574
86647045bc03
parent 4573
365f39d86985
child 4575
464a6b049f89

Changed the Python3 debugger page to use the path picker.

Preferences/ConfigurationPages/CorbaPage.ui file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerPython3Page.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerPython3Page.ui file | annotate | diff | comparison | revisions
--- a/Preferences/ConfigurationPages/CorbaPage.ui	Sun Nov 22 18:41:02 2015 +0100
+++ b/Preferences/ConfigurationPages/CorbaPage.ui	Tue Nov 24 19:42:42 2015 +0100
@@ -39,6 +39,9 @@
      <layout class="QVBoxLayout" name="verticalLayout">
       <item>
        <widget class="E5PathPicker" name="idlPicker" native="true">
+        <property name="focusPolicy">
+         <enum>Qt::StrongFocus</enum>
+        </property>
         <property name="toolTip">
          <string>Enter the path to the IDL compiler.</string>
         </property>
--- a/Preferences/ConfigurationPages/DebuggerPython3Page.py	Sun Nov 22 18:41:02 2015 +0100
+++ b/Preferences/ConfigurationPages/DebuggerPython3Page.py	Tue Nov 24 19:42:42 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_DebuggerPython3Page import Ui_DebuggerPython3Page
 
 import Preferences
-import Utilities
-import UI.PixmapCache
 
 
 class DebuggerPython3Page(ConfigurationPageBase, Ui_DebuggerPython3Page):
@@ -34,14 +29,17 @@
         self.setupUi(self)
         self.setObjectName("DebuggerPython3Page")
         
-        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 Python3 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"))
         
         # set initial values
-        self.interpreterEdit.setText(
+        self.interpreterPicker.setText(
             Preferences.getDebugger("Python3Interpreter"))
         dct = Preferences.getDebugger("DebugClientType3")
         if dct == "standard":
@@ -50,7 +48,7 @@
             self.threadedButton.setChecked(True)
         else:
             self.customButton.setChecked(True)
-        self.debugClientEdit.setText(
+        self.debugClientPicker.setText(
             Preferences.getDebugger("DebugClient3"))
         self.pyRedirectCheckBox.setChecked(
             Preferences.getDebugger("Python3Redirect"))
@@ -65,7 +63,7 @@
         """
         Preferences.setDebugger(
             "Python3Interpreter",
-            self.interpreterEdit.text())
+            self.interpreterPicker.text())
         if self.standardButton.isChecked():
             dct = "standard"
         elif self.threadedButton.isChecked():
@@ -75,7 +73,7 @@
         Preferences.setDebugger("DebugClientType3", dct)
         Preferences.setDebugger(
             "DebugClient3",
-            self.debugClientEdit.text())
+            self.debugClientPicker.text())
         Preferences.setDebugger(
             "Python3Redirect",
             self.pyRedirectCheckBox.isChecked())
@@ -85,36 +83,6 @@
         Preferences.setDebugger(
             "Python3Extensions",
             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 *.py3)"))
-            
-        if file:
-            self.debugClientEdit.setText(
-                Utilities.toNativeSeparators(file))
     
 
 def create(dlg):
--- a/Preferences/ConfigurationPages/DebuggerPython3Page.ui	Sun Nov 22 18:41:02 2015 +0100
+++ b/Preferences/ConfigurationPages/DebuggerPython3Page.ui	Tue Nov 24 19:42:42 2015 +0100
@@ -36,21 +36,17 @@
      <property name="title">
       <string>Python3 Interpreter for Debug Client</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout">
-      <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 Python3 interpreter to be used by the debug client. Leave empty to use the default.</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="1">
-       <widget class="QToolButton" name="interpreterButton">
-        <property name="toolTip">
-         <string>Press to select the Python3 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>325</x>
+     <y>142</y>
     </hint>
     <hint type="destinationlabel">
-     <x>332</x>
-     <y>219</y>
+     <x>323</x>
+     <y>162</y>
     </hint>
    </hints>
   </connection>

eric ide

mercurial