eric6/VirtualEnv/VirtualenvManagerDialog.py

branch
maintenance
changeset 8043
0acf98cd089a
parent 7924
8a96736d465e
parent 7923
91e843545d9a
child 8176
31965986ecd1
--- a/eric6/VirtualEnv/VirtualenvManagerDialog.py	Sun Jan 17 13:53:08 2021 +0100
+++ b/eric6/VirtualEnv/VirtualenvManagerDialog.py	Mon Feb 01 10:38:16 2021 +0100
@@ -11,8 +11,12 @@
 from PyQt5.QtCore import pyqtSlot, Qt
 from PyQt5.QtWidgets import QDialog, QTreeWidgetItem, QHeaderView
 
+from E5Gui.E5PathPicker import E5PathPickerModes
+
 from .Ui_VirtualenvManagerDialog import Ui_VirtualenvManagerDialog
 
+import Utilities
+
 
 class VirtualenvManagerDialog(QDialog, Ui_VirtualenvManagerDialog):
     """
@@ -38,6 +42,15 @@
         
         self.__manager = manager
         
+        baseDir = self.__manager.getVirtualEnvironmentsBaseDir()
+        if not baseDir:
+            baseDir = Utilities.getHomeDir()
+        
+        self.envBaseDirectoryPicker.setMode(E5PathPickerModes.DirectoryMode)
+        self.envBaseDirectoryPicker.setWindowTitle(
+            self.tr("Virtualenv Base Directory"))
+        self.envBaseDirectoryPicker.setText(baseDir)
+        
         self.__populateVenvList()
         self.__updateButtons()
         
@@ -94,7 +107,10 @@
         Private slot to add a new entry.
         """
         from .VirtualenvAddEditDialog import VirtualenvAddEditDialog
-        dlg = VirtualenvAddEditDialog(self.__manager)
+        dlg = VirtualenvAddEditDialog(
+            self.__manager,
+            baseDir=self.envBaseDirectoryPicker.text()
+        )
         if dlg.exec() == QDialog.Accepted:
             (venvName, venvDirectory, venvInterpreter, isGlobal, isConda,
              isRemote, execPath) = dlg.getData()
@@ -108,7 +124,8 @@
         """
         Private slot to create a new virtual environment.
         """
-        self.__manager.createVirtualEnv()
+        self.__manager.createVirtualEnv(
+            baseDir=self.envBaseDirectoryPicker.text())
     
     @pyqtSlot()
     def on_editButton_clicked(self):
@@ -126,6 +143,7 @@
             selectedItem.data(0, VirtualenvManagerDialog.IsCondaRole),
             selectedItem.data(0, VirtualenvManagerDialog.IsRemoteRole),
             selectedItem.data(0, VirtualenvManagerDialog.ExecPathRole),
+            baseDir=self.envBaseDirectoryPicker.text()
         )
         if dlg.exec() == QDialog.Accepted:
             (venvName, venvDirectory, venvInterpreter, isGlobal, isConda,
@@ -273,3 +291,15 @@
         self.venvList.header().resizeSections(
             QHeaderView.ResizeToContents)
         self.venvList.header().setStretchLastSection(True)
+    
+    def closeEvent(self, evt):
+        """
+        Protected method to handle the close event.
+        
+        @param evt reference to the close event
+        @type QCloseEvent
+        """
+        baseDir = self.envBaseDirectoryPicker.text()
+        self.__manager.setVirtualEnvironmentsBaseDir(baseDir)
+        
+        evt.accept()

eric ide

mercurial