Preferences/ConfigurationPages/DebuggerPython3Page.py

changeset 6346
92ed63434dce
parent 6048
82ad8ec9548c
child 6349
17b3c75913de
--- a/Preferences/ConfigurationPages/DebuggerPython3Page.py	Thu Jun 14 19:19:15 2018 +0200
+++ b/Preferences/ConfigurationPages/DebuggerPython3Page.py	Thu Jun 14 19:20:52 2018 +0200
@@ -9,6 +9,7 @@
 
 from __future__ import unicode_literals
 
+from E5Gui.E5Application import e5App
 from E5Gui.E5PathPicker import E5PathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
@@ -29,10 +30,13 @@
         self.setupUi(self)
         self.setObjectName("DebuggerPython3Page")
         
-        self.interpreterPicker.setMode(E5PathPickerModes.OpenFileMode)
-        self.interpreterPicker.setToolTip(self.tr(
-            "Press to select the Python3 interpreter via a file selection"
-            " dialog"))
+        try:
+            virtualenvManager = e5App().getObject("VirtualEnvManager")
+        except KeyError:
+            from VirtualEnv.VirtualenvManager import VirtualenvManager
+            virtualenvManager = VirtualenvManager()
+        self.venvComboBox.addItems(
+            [""] + sorted(virtualenvManager.getVirtualenvNames()))
         
         self.debugClientPicker.setMode(E5PathPickerModes.OpenFileMode)
         self.debugClientPicker.setToolTip(self.tr(
@@ -40,8 +44,12 @@
         self.debugClientPicker.setFilters(self.tr("Python Files (*.py *.py3)"))
         
         # set initial values
-        self.interpreterPicker.setText(
-            Preferences.getDebugger("Python3Interpreter"), toNative=False)
+        venvName = Preferences.getDebugger("Python3VirtualEnv")
+        if venvName:
+            index = self.venvComboBox.findText(venvName)
+            if index < 0:
+                index = 0
+            self.venvComboBox.setCurrentIndex(index)
         dct = Preferences.getDebugger("DebugClientType3")
         if dct == "standard":
             self.standardButton.setChecked(True)
@@ -60,9 +68,11 @@
         """
         Public slot to save the Debugger Python configuration.
         """
-        Preferences.setDebugger(
-            "Python3Interpreter",
-            self.interpreterPicker.text(toNative=False))
+        venvName = self.venvComboBox.currentText()
+        if venvName:
+            Preferences.setDebugger(
+                "Python3VirtualEnv",
+                venvName)
         if self.standardButton.isChecked():
             dct = "standard"
         else:

eric ide

mercurial