diff -r 866adc8c315b -r 0acf98cd089a eric6/VirtualEnv/VirtualenvConfigurationDialog.py --- a/eric6/VirtualEnv/VirtualenvConfigurationDialog.py Sun Jan 17 13:53:08 2021 +0100 +++ b/eric6/VirtualEnv/VirtualenvConfigurationDialog.py Mon Feb 01 10:38:16 2021 +0100 @@ -30,20 +30,27 @@ Class implementing a dialog to enter the parameters for the virtual environment. """ - def __init__(self, parent=None): + def __init__(self, baseDir="", parent=None): """ Constructor + @param baseDir base directory for the virtual environments + @type str @param parent reference to the parent widget @type QWidget """ super(VirtualenvConfigurationDialog, self).__init__(parent) self.setupUi(self) + if not baseDir: + baseDir = Utilities.getHomeDir() + self.__envBaseDir = baseDir + self.targetDirectoryPicker.setMode(E5PathPickerModes.DirectoryMode) self.targetDirectoryPicker.setWindowTitle( self.tr("Virtualenv Target Directory")) - self.targetDirectoryPicker.setDefaultDirectory(Utilities.getHomeDir()) + self.targetDirectoryPicker.setText(baseDir) + self.targetDirectoryPicker.setDefaultDirectory(baseDir) self.extraSearchPathPicker.setMode(E5PathPickerModes.DirectoryMode) self.extraSearchPathPicker.setWindowTitle( @@ -114,11 +121,13 @@ Private method to update the enabled status of the OK button. """ if self.virtualenvButton.isChecked() or self.pyvenvButton.isChecked(): - self.buttonBox.button(QDialogButtonBox.Ok).setEnabled( + enable = ( (self.__virtualenvFound or self.__pyvenvFound) and bool(self.targetDirectoryPicker.text()) and bool(self.nameEdit.text()) ) + enable &= self.targetDirectoryPicker.text() != self.__envBaseDir + self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(enable) elif self.condaButton.isChecked(): enable = ( bool(self.condaNameEdit.text()) or