--- 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()))