eric7/VirtualEnv/VirtualenvManager.py

branch
eric7
changeset 8610
c9cd21bcbe33
parent 8358
144a6b854f70
child 8637
394377638256
equal deleted inserted replaced
8609:fd6b68a0a2df 8610:c9cd21bcbe33
30 a virtual environment 30 a virtual environment
31 @signal virtualEnvironmentRemoved() emitted to indicate the removal and 31 @signal virtualEnvironmentRemoved() emitted to indicate the removal and
32 deletion of a virtual environment 32 deletion of a virtual environment
33 @signal virtualEnvironmentChanged(name) emitted to indicate a change of 33 @signal virtualEnvironmentChanged(name) emitted to indicate a change of
34 a virtual environment 34 a virtual environment
35 @signal virtualEnvironmentsListChanged() emitted to indicate a change of
36 the list of virtual environments (may be used to refresh the list)
35 """ 37 """
36 DefaultKey = "<default>" 38 DefaultKey = "<default>"
37 39
38 virtualEnvironmentAdded = pyqtSignal() 40 virtualEnvironmentAdded = pyqtSignal()
39 virtualEnvironmentRemoved = pyqtSignal() 41 virtualEnvironmentRemoved = pyqtSignal()
40 virtualEnvironmentChanged = pyqtSignal(str) 42 virtualEnvironmentChanged = pyqtSignal(str)
41 43
44 virtualEnvironmentsListChanged = pyqtSignal()
45
42 def __init__(self, parent=None): 46 def __init__(self, parent=None):
43 """ 47 """
44 Constructor 48 Constructor
45 49
46 @param parent reference to the parent object 50 @param parent reference to the parent object
49 super().__init__(parent) 53 super().__init__(parent)
50 54
51 self.__ui = parent 55 self.__ui = parent
52 56
53 self.__loadSettings() 57 self.__loadSettings()
54
55 self.__virtualenvManagerDialog = None
56 58
57 def __loadSettings(self): 59 def __loadSettings(self):
58 """ 60 """
59 Private slot to load the virtual environments. 61 Private slot to load the virtual environments.
60 """ 62 """
262 } 264 }
263 265
264 self.__saveSettings() 266 self.__saveSettings()
265 267
266 self.virtualEnvironmentAdded.emit() 268 self.virtualEnvironmentAdded.emit()
267 if self.__virtualenvManagerDialog: 269 self.virtualEnvironmentsListChanged.emit()
268 self.__virtualenvManagerDialog.refresh()
269 270
270 def setVirtualEnv(self, venvName, venvDirectory, venvInterpreter, 271 def setVirtualEnv(self, venvName, venvDirectory, venvInterpreter,
271 isGlobal, isConda, isRemote, execPath): 272 isGlobal, isConda, isRemote, execPath):
272 """ 273 """
273 Public method to change a virtual environment. 274 Public method to change a virtual environment.
309 } 310 }
310 311
311 self.__saveSettings() 312 self.__saveSettings()
312 313
313 self.virtualEnvironmentChanged.emit(venvName) 314 self.virtualEnvironmentChanged.emit(venvName)
314 if self.__virtualenvManagerDialog: 315 self.virtualEnvironmentsListChanged.emit()
315 self.__virtualenvManagerDialog.refresh()
316 316
317 def renameVirtualEnv(self, oldVenvName, venvName, venvDirectory, 317 def renameVirtualEnv(self, oldVenvName, venvName, venvDirectory,
318 venvInterpreter, isGlobal, isConda, 318 venvInterpreter, isGlobal, isConda,
319 isRemote, execPath): 319 isRemote, execPath):
320 """ 320 """
395 del self.__virtualEnvironments[venvName] 395 del self.__virtualEnvironments[venvName]
396 396
397 self.__saveSettings() 397 self.__saveSettings()
398 398
399 self.virtualEnvironmentRemoved.emit() 399 self.virtualEnvironmentRemoved.emit()
400 if self.__virtualenvManagerDialog: 400 self.virtualEnvironmentsListChanged.emit()
401 self.__virtualenvManagerDialog.refresh()
402 401
403 def __isEnvironmentDeleteable(self, venvName): 402 def __isEnvironmentDeleteable(self, venvName):
404 """ 403 """
405 Private method to check, if a virtual environment can be deleted from 404 Private method to check, if a virtual environment can be deleted from
406 disk. 405 disk.
450 del self.__virtualEnvironments[venvName] 449 del self.__virtualEnvironments[venvName]
451 450
452 self.__saveSettings() 451 self.__saveSettings()
453 452
454 self.virtualEnvironmentRemoved.emit() 453 self.virtualEnvironmentRemoved.emit()
455 if self.__virtualenvManagerDialog: 454 self.virtualEnvironmentsListChanged.emit()
456 self.__virtualenvManagerDialog.refresh()
457 455
458 def getEnvironmentEntries(self): 456 def getEnvironmentEntries(self):
459 """ 457 """
460 Public method to get a dictionary containing the defined virtual 458 Public method to get a dictionary containing the defined virtual
461 environment entries. 459 environment entries.
472 Public slot to show the virtual environment manager dialog. 470 Public slot to show the virtual environment manager dialog.
473 471
474 @param modal flag indicating that the dialog should be shown in 472 @param modal flag indicating that the dialog should be shown in
475 a blocking mode 473 a blocking mode
476 """ 474 """
477 if self.__virtualenvManagerDialog is None: 475 if modal:
478 from .VirtualenvManagerDialog import VirtualenvManagerDialog 476 from .VirtualenvManagerWidgets import VirtualenvManagerDialog
479 self.__virtualenvManagerDialog = VirtualenvManagerDialog( 477 virtualenvManagerDialog = VirtualenvManagerDialog(
480 self, self.__ui) 478 self, self.__ui)
481 479 virtualenvManagerDialog.exec()
482 if modal: 480 self.virtualEnvironmentsListChanged.emit()
483 self.__virtualenvManagerDialog.exec() 481 else:
484 else: 482 self.__ui.activateVirtualenvManager()
485 self.__virtualenvManagerDialog.show()
486
487 def shutdown(self):
488 """
489 Public method to shutdown the manager.
490 """
491 if self.__virtualenvManagerDialog is not None:
492 self.__virtualenvManagerDialog.close()
493 self.__virtualenvManagerDialog = None
494 483
495 def isUnique(self, venvName): 484 def isUnique(self, venvName):
496 """ 485 """
497 Public method to check, if the give logical name is unique. 486 Public method to check, if the give logical name is unique.
498 487

eric ide

mercurial