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 """ |