src/eric7/VirtualEnv/VirtualenvManagerWidgets.py

Tue, 10 Dec 2024 15:46:34 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 10 Dec 2024 15:46:34 +0100
branch
eric7
changeset 11090
f5f5f5803935
parent 11006
a671918232f3
child 11148
15e30f0c76a8
permissions
-rw-r--r--

Updated copyright for 2025.

8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11006
diff changeset
3 # Copyright (c) 2018 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to manage the list of defined virtual
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 environments.
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10
10351
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
11 import datetime
9144
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
12 import os
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
13
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9438
diff changeset
14 from PyQt6.QtCore import Qt, pyqtSlot
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from PyQt6.QtWidgets import (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
16 QDialog,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
17 QDialogButtonBox,
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9438
diff changeset
18 QHeaderView,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
19 QTreeWidgetItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
20 QVBoxLayout,
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9438
diff changeset
21 QWidget,
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 )
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
24 from eric7.EricGui import EricPixmapCache
10351
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
25 from eric7.EricWidgets import EricMessageBox
10359
de0420dac60e Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10351
diff changeset
26 from eric7.EricWidgets.EricListSelectionDialog import EricListSelectionDialog
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9438
diff changeset
27 from eric7.EricWidgets.EricMainWindow import EricMainWindow
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9438
diff changeset
28 from eric7.EricWidgets.EricPathPicker import EricPathPickerModes
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
29 from eric7.SystemUtilities import OSUtilities
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9438
diff changeset
30
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9438
diff changeset
31 from .Ui_VirtualenvManagerWidget import Ui_VirtualenvManagerWidget
10351
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
32 from .VirtualenvMeta import VirtualenvMetaData
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 class VirtualenvManagerWidget(QWidget, Ui_VirtualenvManagerWidget):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 Class implementing a widget to manage the list of defined virtual
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 environments.
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
40
10194
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
41 MetadataRole = Qt.ItemDataRole.UserRole + 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
42
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 def __init__(self, manager, parent=None):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
46
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 @param manager reference to the virtual environment manager
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 @type VirtualenvManager
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 @param parent reference to the parent widget
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 @type QWidget
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 super().__init__(parent)
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.setupUi(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
54
9438
313f1a809a2b Added a line of code to ensure the proper virtualenv manager widget borders.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9434
diff changeset
55 self.layout().setContentsMargins(0, 3, 0, 0)
313f1a809a2b Added a line of code to ensure the proper virtualenv manager widget borders.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9434
diff changeset
56
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 self.__manager = manager
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
58
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
59 self.refreshButton.setIcon(EricPixmapCache.getIcon("reload"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
60 self.addButton.setIcon(EricPixmapCache.getIcon("plus"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
61 self.newButton.setIcon(EricPixmapCache.getIcon("new"))
10351
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
62 self.searchNewButton.setIcon(EricPixmapCache.getIcon("question"))
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
63 self.editButton.setIcon(EricPixmapCache.getIcon("edit"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
64 self.upgradeButton.setIcon(EricPixmapCache.getIcon("upgrade"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
65 self.removeButton.setIcon(EricPixmapCache.getIcon("minus"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
66 self.removeAllButton.setIcon(EricPixmapCache.getIcon("minus_3"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
67 self.deleteButton.setIcon(EricPixmapCache.getIcon("fileDelete"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
68 self.deleteAllButton.setIcon(EricPixmapCache.getIcon("fileDeleteList"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
69 self.saveButton.setIcon(EricPixmapCache.getIcon("fileSave"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
70
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 baseDir = self.__manager.getVirtualEnvironmentsBaseDir()
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 if not baseDir:
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
73 baseDir = OSUtilities.getHomeDir()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
74
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 self.envBaseDirectoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
76 self.envBaseDirectoryPicker.setWindowTitle(self.tr("Virtualenv Base Directory"))
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 self.envBaseDirectoryPicker.setText(baseDir)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
78
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.__populateVenvList()
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 self.__updateButtons()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
81
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 self.venvList.header().setSortIndicator(0, Qt.SortOrder.AscendingOrder)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
83
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 self.__manager.virtualEnvironmentsListChanged.connect(self.__refresh)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
85
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 def __updateButtons(self):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 Private method to update the enabled state of the various buttons.
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 selectedItemsCount = len(self.venvList.selectedItems())
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 topLevelItemCount = self.venvList.topLevelItemCount()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
92
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 deletableSelectedItemCount = 0
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 for itm in self.venvList.selectedItems():
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
96 itm.text(0) != "<default>"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
97 and bool(itm.text(1))
10194
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
98 and not itm.data(0, VirtualenvManagerWidget.MetadataRole).is_global
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
99 and not itm.data(0, VirtualenvManagerWidget.MetadataRole).is_remote
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 ):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 deletableSelectedItemCount += 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
102
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 deletableItemCount = 0
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 for index in range(topLevelItemCount):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 itm = self.venvList.topLevelItem(index)
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
107 itm.text(0) != "<default>"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
108 and bool(itm.text(1))
10194
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
109 and not itm.data(0, VirtualenvManagerWidget.MetadataRole).is_remote
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 ):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 deletableItemCount += 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
112
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 canBeRemoved = (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
114 selectedItemsCount == 1
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
115 and self.venvList.selectedItems()[0].text(0) != "<default>"
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 )
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 canAllBeRemoved = (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
118 topLevelItemCount == 1
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
119 and self.venvList.topLevelItem(0).text(0) != "<default>"
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
121
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 self.editButton.setEnabled(selectedItemsCount == 1)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
123
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 self.removeButton.setEnabled(selectedItemsCount > 1 or canBeRemoved)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
125 self.removeAllButton.setEnabled(topLevelItemCount > 1 or canAllBeRemoved)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
126
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 self.deleteButton.setEnabled(deletableSelectedItemCount)
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 self.deleteAllButton.setEnabled(deletableItemCount)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
129
9144
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
130 if selectedItemsCount == 1:
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
131 venvName = self.venvList.selectedItems()[0].text(0)
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
132 venvDirectory = self.__manager.getVirtualenvDirectory(venvName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
133 self.upgradeButton.setEnabled(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
134 os.path.exists(os.path.join(venvDirectory, "pyvenv.cfg"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
135 )
9144
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
136 else:
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
137 self.upgradeButton.setEnabled(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
138
9144
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
139 @pyqtSlot()
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
140 def on_refreshButton_clicked(self):
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
141 """
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
142 Private slot to refresh the list of virtual environments.
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
143 """
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
144 self.__manager.reloadSettings()
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
145 self.__refresh()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
146
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 @pyqtSlot()
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 def on_addButton_clicked(self):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 Private slot to add a new entry.
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 from .VirtualenvAddEditDialog import VirtualenvAddEditDialog
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
153
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 dlg = VirtualenvAddEditDialog(
10194
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
155 self.__manager, baseDir=self.envBaseDirectoryPicker.text(), parent=self
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 )
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 if dlg.exec() == QDialog.DialogCode.Accepted:
10194
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
158 metadata = dlg.getMetaData()
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
159 self.__manager.addVirtualEnv(metadata)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
160
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 @pyqtSlot()
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 def on_newButton_clicked(self):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 Private slot to create a new virtual environment.
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
166 self.__manager.createVirtualEnv(baseDir=self.envBaseDirectoryPicker.text())
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
167
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 @pyqtSlot()
10351
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
169 def on_searchNewButton_clicked(self):
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
170 """
10359
de0420dac60e Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10351
diff changeset
171 Private slot to search for new (not yet registered) Python interpreters.
10351
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
172 """
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
173 potentialInterpreters = self.__manager.searchUnregisteredInterpreters()
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
174
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
175 if not bool(potentialInterpreters):
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
176 EricMessageBox.information(
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
177 self,
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
178 self.tr("Search Virtual Environments"),
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
179 self.tr("""No unregistered virtual environments were found."""),
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
180 )
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
181 return
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
182
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
183 baseDir = self.__manager.getVirtualEnvironmentsBaseDir()
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
184 if not baseDir:
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
185 baseDir = OSUtilities.getHomeDir()
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
186
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
187 selectionList = []
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
188 for interpreter in potentialInterpreters:
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
189 if not interpreter.startswith(baseDir):
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
190 realpath = os.path.realpath(interpreter)
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
191 if realpath != interpreter:
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
192 # interpreter is a link
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
193 selectionList.append(
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
194 (
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
195 self.tr("{0}\n(=> {1})").format(interpreter, realpath),
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
196 interpreter,
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
197 )
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
198 )
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
199 continue
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
200
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
201 selectionList.append((interpreter, interpreter))
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
202
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
203 dlg = EricListSelectionDialog(
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
204 sorted(selectionList),
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
205 title=self.tr("Search Virtual Environments"),
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
206 message=self.tr(
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
207 "Select the interpreters to create environment entries for:"
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
208 ),
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
209 checkBoxSelection=True,
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
210 emptySelectionOk=True,
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
211 showSelectAll=True,
11006
a671918232f3 Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10975
diff changeset
212 parent=self,
10351
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
213 )
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
214 if dlg.exec() == QDialog.DialogCode.Accepted:
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
215 selectedInterpreters = [env[1] for env in dlg.getSelection()]
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
216
10359
de0420dac60e Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10351
diff changeset
217 nameTemplate = "Environment #{0} added " + datetime.datetime.now().strftime(
de0420dac60e Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10351
diff changeset
218 # noqa: M305
de0420dac60e Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10351
diff changeset
219 "%Y-%m-%d %H:%M"
10351
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
220 )
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
221 for interpreter in selectedInterpreters:
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
222 metadata = VirtualenvMetaData(
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
223 name=nameTemplate.format(
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
224 selectedInterpreters.index(interpreter) + 1
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
225 ),
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
226 path=(
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
227 os.path.abspath(os.path.join(interpreter, "..", ".."))
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
228 if interpreter.startswith(baseDir)
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
229 else ""
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
230 ),
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
231 interpreter=interpreter,
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
232 is_global=not interpreter.startswith(baseDir),
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
233 )
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
234 self.__manager.addVirtualEnv(metadata)
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
235
1f9bafeff96c Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10194
diff changeset
236 @pyqtSlot()
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 def on_editButton_clicked(self):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 Private slot to edit the selected entry.
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 """
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
241 from .VirtualenvAddEditDialog import VirtualenvAddEditDialog
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
242
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 selectedItem = self.venvList.selectedItems()[0]
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 oldVenvName = selectedItem.text(0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
245
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 dlg = VirtualenvAddEditDialog(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
247 self.__manager,
10194
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
248 selectedItem.data(0, VirtualenvManagerWidget.MetadataRole),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
249 baseDir=self.envBaseDirectoryPicker.text(),
10194
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
250 parent=self,
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
251 )
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
252 if dlg.exec() == QDialog.DialogCode.Accepted:
10194
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
253 metadata = dlg.getMetaData()
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
254 if metadata.name != oldVenvName:
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
255 self.__manager.renameVirtualEnv(oldVenvName, metadata)
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256 else:
10194
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
257 self.__manager.setVirtualEnv(metadata)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
258
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 @pyqtSlot()
9144
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
260 def on_upgradeButton_clicked(self):
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
261 """
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
262 Private slot to upgrade a virtual environment.
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
263 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
264 self.__manager.upgradeVirtualEnv(self.venvList.selectedItems()[0].text(0))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
265
9144
135240382a3e Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
266 @pyqtSlot()
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 def on_removeButton_clicked(self):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 Private slot to remove all selected entries from the list but keep
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 their directories.
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 selectedVenvs = []
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 for itm in self.venvList.selectedItems():
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 selectedVenvs.append(itm.text(0))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
275
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 if selectedVenvs:
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 self.__manager.removeVirtualEnvs(selectedVenvs)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
278
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 @pyqtSlot()
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 def on_removeAllButton_clicked(self):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
282 Private slot to remove all entries from the list but keep their
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
283 directories.
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
284 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285 venvNames = []
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
286 for index in range(self.venvList.topLevelItemCount()):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287 itm = self.venvList.topLevelItem(index)
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288 venvNames.append(itm.text(0))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
289
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
290 if venvNames:
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
291 self.__manager.removeVirtualEnvs(venvNames)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
292
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 @pyqtSlot()
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 def on_deleteButton_clicked(self):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
296 Private slot to delete all selected entries from the list and disk.
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
297 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298 selectedVenvs = []
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
299 for itm in self.venvList.selectedItems():
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
300 selectedVenvs.append(itm.text(0))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
301
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302 if selectedVenvs:
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
303 self.__manager.deleteVirtualEnvs(selectedVenvs)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
304
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
305 @pyqtSlot()
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
306 def on_deleteAllButton_clicked(self):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
307 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
308 Private slot to delete all entries from the list and disk.
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
309 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310 venvNames = []
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311 for index in range(self.venvList.topLevelItemCount()):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
312 itm = self.venvList.topLevelItem(index)
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313 venvNames.append(itm.text(0))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
314
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 if venvNames:
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316 self.__manager.deleteVirtualEnvs(venvNames)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
317
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318 @pyqtSlot()
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319 def on_venvList_itemSelectionChanged(self):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 Private slot handling a change of the selected items.
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323 self.__updateButtons()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
324
9434
ef86a77942f2 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
325 selectedItems = self.venvList.selectedItems()
ef86a77942f2 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
326 if len(selectedItems) == 1:
ef86a77942f2 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
327 self.descriptionEdit.setPlainText(
10194
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
328 selectedItems[0]
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
329 .data(0, VirtualenvManagerWidget.MetadataRole)
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
330 .description
9434
ef86a77942f2 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
331 )
ef86a77942f2 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
332 else:
ef86a77942f2 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
333 self.descriptionEdit.clear()
ef86a77942f2 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
334
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 @pyqtSlot()
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 def __refresh(self):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338 Private slot to refresh the list of shown items.
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
339 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
340 # 1. remember selected entries
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 selectedVenvs = []
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
342 for itm in self.venvList.selectedItems():
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
343 selectedVenvs.append(itm.text(0))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
344
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
345 # 2. clear the list
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346 self.venvList.clear()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
347
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348 # 3. re-populate the list
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
349 self.__populateVenvList()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
350
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
351 # 4. re-establish selection
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
352 for venvName in selectedVenvs:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
353 itms = self.venvList.findItems(venvName, Qt.MatchFlag.MatchExactly, 0)
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 if itms:
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355 itms[0].setSelected(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
356
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 def __populateVenvList(self):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
358 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
359 Private method to populate the list of virtual environments.
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
360 """
10194
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
361 for environment in self.__manager.getEnvironmentEntries():
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
362 itm = QTreeWidgetItem(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
363 self.venvList,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
364 [
10194
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
365 environment.name,
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
366 environment.path,
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
367 environment.interpreter,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
368 ],
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
369 )
10194
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
370 itm.setData(0, VirtualenvManagerWidget.MetadataRole, environment)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
371
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
372 # show remote environments with underlined font
10194
2c26b4fe25db Refactored the 'VirtualEnv' code for better maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
373 if environment.is_remote:
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
374 font = itm.font(0)
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
375 font.setUnderline(True)
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376 for column in range(itm.columnCount()):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377 itm.setFont(column, font)
10975
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
378
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
379 # show global environments with bold font
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
380 elif environment.is_global:
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
381 font = itm.font(0)
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
382 font.setBold(True)
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
383 for column in range(itm.columnCount()):
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
384 itm.setFont(column, font)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
385
10975
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
386 # show Anaconda environments with italic font
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
387 elif environment.is_conda:
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
388 font = itm.font(0)
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
389 font.setItalic(True)
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
390 for column in range(itm.columnCount()):
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
391 itm.setFont(column, font)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
392
10975
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
393 # show eric-ide server environments with underlined italic font
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
394 elif environment.is_eric_server:
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
395 font = itm.font(0)
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
396 font.setItalic(True)
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
397 font.setUnderline(True)
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
398 for column in range(itm.columnCount()):
4f2d83400df5 Changed the virtual environments list to show eric-ide server environments with underlined italic font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
399 itm.setFont(column, font)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
400
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
401 self.__resizeSections()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
402
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
403 def __resizeSections(self):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
404 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
405 Private method to resize the sections of the environment list to their
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
406 contents.
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
407 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
408 self.venvList.header().resizeSections(QHeaderView.ResizeMode.ResizeToContents)
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409 self.venvList.header().setStretchLastSection(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
410
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
411 @pyqtSlot()
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
412 def on_saveButton_clicked(self):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
413 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
414 Private slot to save the base directory name.
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
415 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
416 baseDir = self.envBaseDirectoryPicker.text()
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
417 self.__manager.setVirtualEnvironmentsBaseDir(baseDir)
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
418
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
419
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
420 class VirtualenvManagerDialog(QDialog):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
421 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
422 Class implementing the virtual environments manager dialog variant.
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
423 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
424
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
425 def __init__(self, manager, parent=None):
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
426 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
427 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
428
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
429 @param manager reference to the virtual environment manager
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
430 @type VirtualenvManager
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
431 @param parent reference to the parent widget
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
432 @type QWidget
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
433 """
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
434 super().__init__(parent)
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
435 self.setSizeGripEnabled(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
436
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
437 self.__layout = QVBoxLayout(self)
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
438 self.setLayout(self.__layout)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
439
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
440 self.cw = VirtualenvManagerWidget(manager, self)
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
441 self.__layout.addWidget(self.cw)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
442
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
443 self.buttonBox = QDialogButtonBox(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
444 QDialogButtonBox.StandardButton.Close, Qt.Orientation.Horizontal, self
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
445 )
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
446 self.__layout.addWidget(self.buttonBox)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
447
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
448 self.resize(700, 500)
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
449 self.setWindowTitle(self.tr("Manage Virtual Environments"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
450
8610
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
451 self.buttonBox.accepted.connect(self.accept)
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
452 self.buttonBox.rejected.connect(self.reject)
c9cd21bcbe33 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
453
8611
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
454
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
455 class VirtualenvManagerWindow(EricMainWindow):
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
456 """
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
457 Main window class for the standalone virtual environments manager.
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
458 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
459
8611
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
460 def __init__(self, parent=None):
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
461 """
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
462 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
463
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10359
diff changeset
464 @param parent reference to the parent widget
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10359
diff changeset
465 @type QWidget
8611
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
466 """
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
467 from eric7.VirtualEnv.VirtualenvManager import VirtualenvManager
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
468
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
469 super().__init__(parent)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
470
8611
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
471 self.__virtualenvManager = VirtualenvManager(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
472
8611
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
473 self.__centralWidget = QWidget(self)
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
474 self.__layout = QVBoxLayout(self.__centralWidget)
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
475 self.__centralWidget.setLayout(self.__layout)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
476
8611
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
477 self.__virtualenvManagerWidget = VirtualenvManagerWidget(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
478 self.__virtualenvManager, self.__centralWidget
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
479 )
8611
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
480 self.__layout.addWidget(self.__virtualenvManagerWidget)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
481
8611
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
482 self.__buttonBox = QDialogButtonBox(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
483 QDialogButtonBox.StandardButton.Close, Qt.Orientation.Horizontal, self
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
484 )
8611
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
485 self.__layout.addWidget(self.__buttonBox)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
486
8611
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
487 self.setCentralWidget(self.__centralWidget)
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
488 self.resize(700, 500)
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
489 self.setWindowTitle(self.tr("Manage Virtual Environments"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
490
8611
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
491 self.__buttonBox.accepted.connect(self.close)
0b1a09e47e98 Virtual Environments
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8610
diff changeset
492 self.__buttonBox.rejected.connect(self.close)

eric ide

mercurial