eric7/VirtualEnv/VirtualenvManager.py

branch
eric7
changeset 8610
c9cd21bcbe33
parent 8358
144a6b854f70
child 8637
394377638256
diff -r fd6b68a0a2df -r c9cd21bcbe33 eric7/VirtualEnv/VirtualenvManager.py
--- a/eric7/VirtualEnv/VirtualenvManager.py	Thu Sep 16 19:23:07 2021 +0200
+++ b/eric7/VirtualEnv/VirtualenvManager.py	Thu Sep 16 19:31:00 2021 +0200
@@ -32,6 +32,8 @@
         deletion of a virtual environment
     @signal virtualEnvironmentChanged(name) emitted to indicate a change of
         a virtual environment
+    @signal virtualEnvironmentsListChanged() emitted to indicate a change of
+        the list of virtual environments (may be used to refresh the list)
     """
     DefaultKey = "<default>"
     
@@ -39,6 +41,8 @@
     virtualEnvironmentRemoved = pyqtSignal()
     virtualEnvironmentChanged = pyqtSignal(str)
     
+    virtualEnvironmentsListChanged = pyqtSignal()
+    
     def __init__(self, parent=None):
         """
         Constructor
@@ -51,8 +55,6 @@
         self.__ui = parent
         
         self.__loadSettings()
-        
-        self.__virtualenvManagerDialog = None
     
     def __loadSettings(self):
         """
@@ -264,8 +266,7 @@
             self.__saveSettings()
             
             self.virtualEnvironmentAdded.emit()
-            if self.__virtualenvManagerDialog:
-                self.__virtualenvManagerDialog.refresh()
+            self.virtualEnvironmentsListChanged.emit()
     
     def setVirtualEnv(self, venvName, venvDirectory, venvInterpreter,
                       isGlobal, isConda, isRemote, execPath):
@@ -311,8 +312,7 @@
         self.__saveSettings()
         
         self.virtualEnvironmentChanged.emit(venvName)
-        if self.__virtualenvManagerDialog:
-            self.__virtualenvManagerDialog.refresh()
+        self.virtualEnvironmentsListChanged.emit()
     
     def renameVirtualEnv(self, oldVenvName, venvName, venvDirectory,
                          venvInterpreter, isGlobal, isConda,
@@ -397,8 +397,7 @@
                 self.__saveSettings()
                 
                 self.virtualEnvironmentRemoved.emit()
-                if self.__virtualenvManagerDialog:
-                    self.__virtualenvManagerDialog.refresh()
+                self.virtualEnvironmentsListChanged.emit()
     
     def __isEnvironmentDeleteable(self, venvName):
         """
@@ -452,8 +451,7 @@
                 self.__saveSettings()
                 
                 self.virtualEnvironmentRemoved.emit()
-                if self.__virtualenvManagerDialog:
-                    self.__virtualenvManagerDialog.refresh()
+                self.virtualEnvironmentsListChanged.emit()
     
     def getEnvironmentEntries(self):
         """
@@ -474,23 +472,14 @@
         @param modal flag indicating that the dialog should be shown in
             a blocking mode
         """
-        if self.__virtualenvManagerDialog is None:
-            from .VirtualenvManagerDialog import VirtualenvManagerDialog
-            self.__virtualenvManagerDialog = VirtualenvManagerDialog(
+        if modal:
+            from .VirtualenvManagerWidgets import VirtualenvManagerDialog
+            virtualenvManagerDialog = VirtualenvManagerDialog(
                 self, self.__ui)
-        
-        if modal:
-            self.__virtualenvManagerDialog.exec()
+            virtualenvManagerDialog.exec()
+            self.virtualEnvironmentsListChanged.emit()
         else:
-            self.__virtualenvManagerDialog.show()
-    
-    def shutdown(self):
-        """
-        Public method to shutdown the manager.
-        """
-        if self.__virtualenvManagerDialog is not None:
-            self.__virtualenvManagerDialog.close()
-            self.__virtualenvManagerDialog = None
+            self.__ui.activateVirtualenvManager()
     
     def isUnique(self, venvName):
         """

eric ide

mercurial