Preferences/__init__.py

changeset 6346
92ed63434dce
parent 6305
7652b925c25e
child 6348
d6c0b8ab1fc6
--- a/Preferences/__init__.py	Thu Jun 14 19:19:15 2018 +0200
+++ b/Preferences/__init__.py	Thu Jun 14 19:20:52 2018 +0200
@@ -92,6 +92,8 @@
         "SuppressClientExit": False,
         "BreakAlways": False,
         "ShowExceptionInShell": True,
+        "Python2VirtualEnv": "",
+        "Python3VirtualEnv": "",
         "PythonInterpreter": "",
         "Python3Interpreter": "",
         "RubyInterpreter": "",
@@ -1797,34 +1799,27 @@
             prefClass.settings.value(
                 "Debugger/" + key, prefClass.debuggerDefaults[key]))
     elif key in ["PythonInterpreter", "Python3Interpreter"]:
-        interpreter = \
-            prefClass.settings.value(
-                "Debugger/" + key, prefClass.debuggerDefaults[key])
+        # This code is here to ensure backward compatibility.
+        if key == "PythonInterpreter":
+            newKey = "Python2VirtualEnv"
+        else:
+            newKey = "Python3VirtualEnv"
+        venvName = prefClass.settings.value(
+                "Debugger/" + newKey, prefClass.debuggerDefaults[newKey])
+        if venvName:
+            try:
+                from E5Gui.E5Application import e5App
+                virtualenvManager = e5App().getObject("VirtualEnvManager")
+            except KeyError:
+                from VirtualEnv.VirtualenvManager import VirtualenvManager
+                virtualenvManager = VirtualenvManager()
+            interpreter = virtualenvManager.getVirtualenvInterpreter(venvName)
+        else:
+            interpreter = ""
         if not interpreter:
             pyVersion = 2 if key == "PythonInterpreter" else 3
             if sys.version_info[0] == pyVersion:
                 return sys.executable
-
-            interpreters = findPythonInterpreters(pyVersion)
-            if interpreters:
-                if len(interpreters) == 1:
-                    interpreter = interpreters[0]
-                else:
-                    selection, ok = QInputDialog.getItem(
-                        None,
-                        QCoreApplication.translate(
-                            "Preferences",
-                            "Select Python{0} Interpreter").format(pyVersion),
-                        QCoreApplication.translate(
-                            "Preferences",
-                            "Select the Python{0} interpreter to be used:")
-                        .format(pyVersion),
-                        interpreters,
-                        0, False)
-                    if ok and selection != "":
-                        interpreter = selection
-                if interpreter:
-                    setDebugger(key, interpreter)
         return interpreter
     elif key in ["DebugClientType", "DebugClientType3"]:
         debugClientType = prefClass.settings.value(

eric ide

mercurial