ProjectPyramid/ConfigurationPage/PyramidPage.py

changeset 114
4de6dbce4dd6
parent 112
916727bdff4d
child 126
f148f85d9e16
--- a/ProjectPyramid/ConfigurationPage/PyramidPage.py	Sat Mar 31 13:41:00 2018 +0200
+++ b/ProjectPyramid/ConfigurationPage/PyramidPage.py	Sat Jun 23 17:45:53 2018 +0200
@@ -13,6 +13,7 @@
 
 from E5Gui.E5Completers import E5DirCompleter
 from E5Gui import E5FileDialog
+from E5Gui.E5Application import e5App
 
 from Preferences.ConfigurationPages.ConfigurationPageBase import \
     ConfigurationPageBase
@@ -71,6 +72,26 @@
         self.py3ShellCombo.addItem(self.tr("IPython"), "ipython")
         self.py3ShellCombo.addItem(self.tr("bpython"), "bpython")
         
+        try:
+            venvManager = e5App().getObject("VirtualEnvManager")
+            
+            self.py2VenvNameComboBox.addItems(
+                [""] + sorted(venvManager.getVirtualenvNamesForVariant(2)))
+            self.py3VenvNameComboBox.addItems(
+                [""] + sorted(venvManager.getVirtualenvNamesForVariant(3)))
+            
+            self.pyramidVirtualEnvPy2Group.hide()
+            self.pyramidVirtualEnvPy3Group.hide()
+            
+            self.__hasVirtualEnvironmentManager = True
+        except KeyError:
+            venvManager = None
+            
+            self.pyramidVirtualEnvironmentPy2Group.hide()
+            self.pyramidVirtualEnvironmentPy3Group.hide()
+            
+            self.__hasVirtualEnvironmentManager = False
+        
         # set initial values
         self.consoleCommandCombo.setEditText(
             self.__plugin.getPreferences("ConsoleCommand"))
@@ -78,13 +99,31 @@
         self.externalBrowserCheckBox.setChecked(
             self.__plugin.getPreferences("UseExternalBrowser"))
         
-        self.virtualEnvPy2Edit.setText(
-            self.__plugin.getPreferences("VirtualEnvironmentPy2"))
-        self.virtualEnvPy3Edit.setText(
-            self.__plugin.getPreferences("VirtualEnvironmentPy3"))
-        
+        if venvManager:
+            venvName = self.__plugin.getPreferences(
+                "VirtualEnvironmentNamePy2")
+            if venvName:
+                index = self.py2VenvNameComboBox.findText(venvName)
+                if index < 0:
+                    index = 0
+                self.py2VenvNameComboBox.setCurrentIndex(index)
+        else:
+            self.virtualEnvPy2Edit.setText(
+                self.__plugin.getPreferences("VirtualEnvironmentPy2"))
         self.py2ShellCombo.setCurrentIndex(self.py2ShellCombo.findData(
             self.__plugin.getPreferences("Python2ConsoleType")))
+        
+        if venvManager:
+            venvName = self.__plugin.getPreferences(
+                "VirtualEnvironmentNamePy3")
+            if venvName:
+                index = self.py3VenvNameComboBox.findText(venvName)
+                if index < 0:
+                    index = 0
+                self.py3VenvNameComboBox.setCurrentIndex(index)
+        else:
+            self.virtualEnvPy3Edit.setText(
+                self.__plugin.getPreferences("VirtualEnvironmentPy3"))
         self.py3ShellCombo.setCurrentIndex(self.py3ShellCombo.findData(
             self.__plugin.getPreferences("Python3ConsoleType")))
         
@@ -104,14 +143,24 @@
         self.__plugin.setPreferences(
             "UseExternalBrowser", self.externalBrowserCheckBox.isChecked())
         
-        self.__plugin.setPreferences(
-            "VirtualEnvironmentPy2", self.virtualEnvPy2Edit.text())
-        self.__plugin.setPreferences(
-            "VirtualEnvironmentPy3", self.virtualEnvPy3Edit.text())
-        
+        if self.__hasVirtualEnvironmentManager:
+            self.__plugin.setPreferences(
+                "VirtualEnvironmentNamePy2",
+                self.py2VenvNameComboBox.currentText())
+        else:
+            self.__plugin.setPreferences(
+                "VirtualEnvironmentPy2", self.virtualEnvPy2Edit.text())
         self.__plugin.setPreferences(
             "Python2ConsoleType",
             self.py2ShellCombo.itemData(self.py2ShellCombo.currentIndex()))
+        
+        if self.__hasVirtualEnvironmentManager:
+            self.__plugin.setPreferences(
+                "VirtualEnvironmentNamePy3",
+                self.py3VenvNameComboBox.currentText())
+        else:
+            self.__plugin.setPreferences(
+                "VirtualEnvironmentPy3", self.virtualEnvPy3Edit.text())
         self.__plugin.setPreferences(
             "Python3ConsoleType",
             self.py3ShellCombo.itemData(self.py3ShellCombo.currentIndex()))

eric ide

mercurial