diff -r ad9f1dc09b4a -r 2eeec6bc49e6 eric6/VirtualEnv/VirtualenvAddEditDialog.py --- a/eric6/VirtualEnv/VirtualenvAddEditDialog.py Wed Dec 23 11:47:43 2020 +0100 +++ b/eric6/VirtualEnv/VirtualenvAddEditDialog.py Wed Dec 23 16:28:35 2020 +0100 @@ -26,7 +26,7 @@ """ def __init__(self, manager, venvName="", venvDirectory="", venvInterpreter="", isGlobal=False, isConda=False, - isRemote=False, execPath="", parent=None): + isRemote=False, execPath="", baseDir="", parent=None): """ Constructor @@ -47,6 +47,8 @@ @param execPath search path string to be prepended to the PATH environment variable @type str + @param baseDir base directory for the virtual environments + @type str @param parent reference to the parent widget @type QWidget """ @@ -57,10 +59,19 @@ self.__manager = manager self.__editMode = bool(venvName) + if self.__editMode: + self.setWindowTitle(self.tr("Edit Virtual Environment")) + else: + self.setWindowTitle(self.tr("Add Virtual Environment")) + + self.__envBaseDir = baseDir + if not self.__envBaseDir: + self.__envBaseDir = Utilities.getHomeDir() + self.targetDirectoryPicker.setMode(E5PathPickerModes.DirectoryMode) self.targetDirectoryPicker.setWindowTitle( self.tr("Virtualenv Target Directory")) - self.targetDirectoryPicker.setDefaultDirectory(Utilities.getHomeDir()) + self.targetDirectoryPicker.setDefaultDirectory(self.__envBaseDir) self.pythonExecPicker.setMode(E5PathPickerModes.OpenFileMode) self.pythonExecPicker.setWindowTitle( @@ -75,8 +86,12 @@ ) self.nameEdit.setText(venvName) - self.targetDirectoryPicker.setText(venvDirectory, - toNative=not isRemote) + if venvName: + self.targetDirectoryPicker.setText(venvDirectory, + toNative=not isRemote) + else: + self.targetDirectoryPicker.setText(self.__envBaseDir, + toNative=not isRemote) self.pythonExecPicker.setText(venvInterpreter, toNative=not isRemote) self.globalCheckBox.setChecked(isGlobal) @@ -103,12 +118,11 @@ ) if not self.globalCheckBox.isChecked(): - enable = ( - enable and ( - self.remoteCheckBox.isChecked() or ( - bool(self.targetDirectoryPicker.text()) and - os.path.exists(self.targetDirectoryPicker.text()) - ) + enable &= ( + self.remoteCheckBox.isChecked() or ( + bool(self.targetDirectoryPicker.text()) and + self.targetDirectoryPicker.text() != self.__envBaseDir and + os.path.exists(self.targetDirectoryPicker.text()) ) )