--- a/ProjectDjango/ConfigurationPage/DjangoPage.py Mon Mar 25 18:30:42 2013 +0100 +++ b/ProjectDjango/ConfigurationPage/DjangoPage.py Tue Mar 26 16:37:01 2013 +0100 @@ -7,11 +7,17 @@ Module implementing the Django configuration page. """ +from PyQt4.QtCore import pyqtSlot + +from E5Gui import E5FileDialog + from Preferences.ConfigurationPages.ConfigurationPageBase import ConfigurationPageBase from .Ui_DjangoPage import Ui_DjangoPage from Globals import isWindowsPlatform, isMacPlatform +import Utilities + class DjangoPage(ConfigurationPageBase, Ui_DjangoPage): """ @@ -71,8 +77,15 @@ self.appsRecentSpinBox.setValue( self.__plugin.getPreferences("RecentNumberApps")) - self.plainPythonCheckBox.setChecked( - self.__plugin.getPreferences("UsePlainPython")) + self.virtualEnvPy2Edit.setText( + self.__plugin.getPreferences("VirtualEnvironmentPy2")) + self.plainPython2CheckBox.setChecked( + self.__plugin.getPreferences("UsePlainPythonPy2")) + + self.virtualEnvPy3Edit.setText( + self.__plugin.getPreferences("VirtualEnvironmentPy3")) + self.plainPython3CheckBox.setChecked( + self.__plugin.getPreferences("UsePlainPythonPy3")) def save(self): """ @@ -91,5 +104,48 @@ self.__plugin.setPreferences("RecentNumberApps", self.appsRecentSpinBox.value()) - self.__plugin.setPreferences("UsePlainPython", - self.plainPythonCheckBox.isChecked()) + self.__plugin.setPreferences("VirtualEnvironmentPy2", + self.virtualEnvPy2Edit.text()) + self.__plugin.setPreferences("UsePlainPythonPy2", + self.plainPython2CheckBox.isChecked()) + + self.__plugin.setPreferences("VirtualEnvironmentPy3", + self.virtualEnvPy3Edit.text()) + self.__plugin.setPreferences("UsePlainPythonPy3", + self.plainPython3CheckBox.isChecked()) + + @pyqtSlot() + def on_virtualEnvPy3Button_clicked(self): + """ + Private slot to select the virtual environment for Python 3 via a + directory selection dialog. + """ + vDir = self.virtualEnvPy3Edit.text() + if not vDir: + vDir = Utilities.getHomeDir() + virtualEnv = E5FileDialog.getExistingDirectory( + self, + self.trUtf8("Select Virtual Environment for Python 3"), + vDir, + E5FileDialog.Options(E5FileDialog.Option(0))) + + if virtualEnv: + self.virtualEnvPy3Edit.setText(Utilities.toNativeSeparators(virtualEnv)) + + @pyqtSlot() + def on_virtualEnvPy2Button_clicked(self): + """ + Private slot to select the virtual environment for Python 2 via a + directory selection dialog. + """ + vDir = self.virtualEnvPy2Edit.text() + if not vDir: + vDir = Utilities.getHomeDir() + virtualEnv = E5FileDialog.getExistingDirectory( + self, + self.trUtf8("Select Virtual Environment for Python 2"), + vDir, + E5FileDialog.Options(E5FileDialog.Option(0))) + + if virtualEnv: + self.virtualEnvPy2Edit.setText(Utilities.toNativeSeparators(virtualEnv))