VirtualEnv/VirtualenvManagerDialog.py

branch
maintenance
changeset 6826
c6dda2cbe081
parent 6716
1c9d3b369ea8
equal deleted inserted replaced
6764:d14ddbfbbd36 6826:c6dda2cbe081
22 environments. 22 environments.
23 """ 23 """
24 PythonVariantRole = Qt.UserRole 24 PythonVariantRole = Qt.UserRole
25 IsGlobalRole = Qt.UserRole + 1 25 IsGlobalRole = Qt.UserRole + 1
26 IsCondaRole = Qt.UserRole + 2 26 IsCondaRole = Qt.UserRole + 2
27 ExecPathRole = Qt.UserRole + 3 27 IsRemoteRole = Qt.UserRole + 3
28 ExecPathRole = Qt.UserRole + 4
28 29
29 def __init__(self, manager, parent=None): 30 def __init__(self, manager, parent=None):
30 """ 31 """
31 Constructor 32 Constructor
32 33
54 55
55 deletableSelectedItemCount = 0 56 deletableSelectedItemCount = 0
56 for itm in self.venvList.selectedItems(): 57 for itm in self.venvList.selectedItems():
57 if itm.text(0) != "<default>" and \ 58 if itm.text(0) != "<default>" and \
58 bool(itm.text(1)) and \ 59 bool(itm.text(1)) and \
59 not itm.data(0, VirtualenvManagerDialog.IsGlobalRole): 60 not itm.data(0, VirtualenvManagerDialog.IsGlobalRole) and \
61 not itm.data(0, VirtualenvManagerDialog.IsRemoteRole):
60 deletableSelectedItemCount += 1 62 deletableSelectedItemCount += 1
61 63
62 deletableItemCount = 0 64 deletableItemCount = 0
63 for index in range(topLevelItemCount): 65 for index in range(topLevelItemCount):
64 itm = self.venvList.topLevelItem(index) 66 itm = self.venvList.topLevelItem(index)
65 if itm.text(0) != "<default>" and bool(itm.text(1)): 67 if itm.text(0) != "<default>" and bool(itm.text(1)) and \
68 not itm.data(0, VirtualenvManagerDialog.IsRemoteRole):
66 deletableItemCount += 1 69 deletableItemCount += 1
67 70
68 canBeDeleted = ( 71 canBeRemoved = (
69 selectedItemsCount == 1 and 72 selectedItemsCount == 1 and
70 self.venvList.selectedItems()[0].text(0) != "<default>" 73 self.venvList.selectedItems()[0].text(0) != "<default>"
71 ) 74 )
72 canAllBeDeleted = ( 75 canAllBeRemoved = (
73 topLevelItemCount == 1 and 76 topLevelItemCount == 1 and
74 self.venvList.topLevelItem(0).text(0) != "<default>" 77 self.venvList.topLevelItem(0).text(0) != "<default>"
75 ) 78 )
76 79
77 self.editButton.setEnabled(selectedItemsCount == 1) 80 self.editButton.setEnabled(selectedItemsCount == 1)
78 81
79 self.removeButton.setEnabled(selectedItemsCount > 1 or canBeDeleted) 82 self.removeButton.setEnabled(selectedItemsCount > 1 or canBeRemoved)
80 self.removeAllButton.setEnabled( 83 self.removeAllButton.setEnabled(
81 topLevelItemCount > 1 or canAllBeDeleted) 84 topLevelItemCount > 1 or canAllBeRemoved)
82 85
83 self.deleteButton.setEnabled(deletableSelectedItemCount) 86 self.deleteButton.setEnabled(deletableSelectedItemCount)
84 self.deleteAllButton.setEnabled(deletableItemCount) 87 self.deleteAllButton.setEnabled(deletableItemCount)
85 88
86 @pyqtSlot() 89 @pyqtSlot()
90 """ 93 """
91 from .VirtualenvAddEditDialog import VirtualenvAddEditDialog 94 from .VirtualenvAddEditDialog import VirtualenvAddEditDialog
92 dlg = VirtualenvAddEditDialog(self.__manager) 95 dlg = VirtualenvAddEditDialog(self.__manager)
93 if dlg.exec_() == QDialog.Accepted: 96 if dlg.exec_() == QDialog.Accepted:
94 (venvName, venvDirectory, venvInterpreter, venvVariant, 97 (venvName, venvDirectory, venvInterpreter, venvVariant,
95 isGlobal, isConda, execPath) = dlg.getData() 98 isGlobal, isConda, isRemote, execPath) = dlg.getData()
96 99
97 self.__manager.addVirtualEnv(venvName, venvDirectory, 100 self.__manager.addVirtualEnv(
98 venvInterpreter, venvVariant, 101 venvName, venvDirectory, venvInterpreter, venvVariant,
99 isGlobal, isConda, execPath) 102 isGlobal, isConda, isRemote, execPath)
100 103
101 @pyqtSlot() 104 @pyqtSlot()
102 def on_newButton_clicked(self): 105 def on_newButton_clicked(self):
103 """ 106 """
104 Private slot to create a new virtual environment. 107 Private slot to create a new virtual environment.
118 self.__manager, selectedItem.text(0), 121 self.__manager, selectedItem.text(0),
119 selectedItem.text(1), selectedItem.text(2), 122 selectedItem.text(1), selectedItem.text(2),
120 selectedItem.data(0, VirtualenvManagerDialog.PythonVariantRole), 123 selectedItem.data(0, VirtualenvManagerDialog.PythonVariantRole),
121 selectedItem.data(0, VirtualenvManagerDialog.IsGlobalRole), 124 selectedItem.data(0, VirtualenvManagerDialog.IsGlobalRole),
122 selectedItem.data(0, VirtualenvManagerDialog.IsCondaRole), 125 selectedItem.data(0, VirtualenvManagerDialog.IsCondaRole),
126 selectedItem.data(0, VirtualenvManagerDialog.IsRemoteRole),
123 selectedItem.data(0, VirtualenvManagerDialog.ExecPathRole), 127 selectedItem.data(0, VirtualenvManagerDialog.ExecPathRole),
124 ) 128 )
125 if dlg.exec_() == QDialog.Accepted: 129 if dlg.exec_() == QDialog.Accepted:
126 (venvName, venvDirectory, venvInterpreter, venvVariant, 130 (venvName, venvDirectory, venvInterpreter, venvVariant,
127 isGlobal, isConda, execPath) = dlg.getData() 131 isGlobal, isConda, isRemote, execPath) = dlg.getData()
128 if venvName != oldVenvName: 132 if venvName != oldVenvName:
129 self.__manager.renameVirtualEnv( 133 self.__manager.renameVirtualEnv(
130 oldVenvName, venvName, venvDirectory, venvInterpreter, 134 oldVenvName, venvName, venvDirectory, venvInterpreter,
131 venvVariant, isGlobal, isConda, execPath) 135 venvVariant, isGlobal, isConda, isRemote, execPath)
132 else: 136 else:
133 self.__manager.setVirtualEnv( 137 self.__manager.setVirtualEnv(
134 venvName, venvDirectory, venvInterpreter, venvVariant, 138 venvName, venvDirectory, venvInterpreter, venvVariant,
135 isGlobal, isConda, execPath) 139 isGlobal, isConda, isRemote, execPath)
136 140
137 @pyqtSlot() 141 @pyqtSlot()
138 def on_removeButton_clicked(self): 142 def on_removeButton_clicked(self):
139 """ 143 """
140 Private slot to remove all selected entries from the list but keep 144 Private slot to remove all selected entries from the list but keep
230 environments[venvName]["variant"]) 234 environments[venvName]["variant"])
231 itm.setData(0, VirtualenvManagerDialog.IsGlobalRole, 235 itm.setData(0, VirtualenvManagerDialog.IsGlobalRole,
232 environments[venvName]["is_global"]) 236 environments[venvName]["is_global"])
233 itm.setData(0, VirtualenvManagerDialog.IsCondaRole, 237 itm.setData(0, VirtualenvManagerDialog.IsCondaRole,
234 environments[venvName]["is_conda"]) 238 environments[venvName]["is_conda"])
239 itm.setData(0, VirtualenvManagerDialog.IsRemoteRole,
240 environments[venvName]["is_remote"])
235 itm.setData(0, VirtualenvManagerDialog.ExecPathRole, 241 itm.setData(0, VirtualenvManagerDialog.ExecPathRole,
236 environments[venvName]["exec_path"]) 242 environments[venvName]["exec_path"])
237 243
238 # show global environments with bold font 244 # show remote environments with underlined font
239 if environments[venvName]["is_global"]: 245 if environments[venvName]["is_remote"]:
240 font = itm.font(0) 246 font = itm.font(0)
241 font.setBold(True) 247 font.setUnderline(True)
242 for column in range(itm.columnCount()): 248 for column in range(itm.columnCount()):
243 itm.setFont(column, font) 249 itm.setFont(column, font)
244 250 else:
245 # show Anaconda environments with italic font 251 # local environments
246 if environments[venvName]["is_conda"]: 252
247 font = itm.font(0) 253 # show global environments with bold font
248 font.setItalic(True) 254 if environments[venvName]["is_global"]:
249 for column in range(itm.columnCount()): 255 font = itm.font(0)
250 itm.setFont(column, font) 256 font.setBold(True)
257 for column in range(itm.columnCount()):
258 itm.setFont(column, font)
259
260 # show Anaconda environments with italic font
261 if environments[venvName]["is_conda"]:
262 font = itm.font(0)
263 font.setItalic(True)
264 for column in range(itm.columnCount()):
265 itm.setFont(column, font)
251 266
252 self.__resizeSections() 267 self.__resizeSections()
253 268
254 def __resizeSections(self): 269 def __resizeSections(self):
255 """ 270 """

eric ide

mercurial