--- a/VirtualEnv/VirtualenvManagerDialog.py Sat Feb 09 14:40:32 2019 +0100 +++ b/VirtualEnv/VirtualenvManagerDialog.py Sun Feb 10 12:13:10 2019 +0100 @@ -24,7 +24,8 @@ PythonVariantRole = Qt.UserRole IsGlobalRole = Qt.UserRole + 1 IsCondaRole = Qt.UserRole + 2 - ExecPathRole = Qt.UserRole + 3 + IsRemoteRole = Qt.UserRole + 3 + ExecPathRole = Qt.UserRole + 4 def __init__(self, manager, parent=None): """ @@ -56,29 +57,31 @@ for itm in self.venvList.selectedItems(): if itm.text(0) != "<default>" and \ bool(itm.text(1)) and \ - not itm.data(0, VirtualenvManagerDialog.IsGlobalRole): + not itm.data(0, VirtualenvManagerDialog.IsGlobalRole) and \ + not itm.data(0, VirtualenvManagerDialog.IsRemoteRole): deletableSelectedItemCount += 1 deletableItemCount = 0 for index in range(topLevelItemCount): itm = self.venvList.topLevelItem(index) - if itm.text(0) != "<default>" and bool(itm.text(1)): + if itm.text(0) != "<default>" and bool(itm.text(1)) and \ + not itm.data(0, VirtualenvManagerDialog.IsRemoteRole): deletableItemCount += 1 - canBeDeleted = ( + canBeRemoved = ( selectedItemsCount == 1 and self.venvList.selectedItems()[0].text(0) != "<default>" ) - canAllBeDeleted = ( + canAllBeRemoved = ( topLevelItemCount == 1 and self.venvList.topLevelItem(0).text(0) != "<default>" ) self.editButton.setEnabled(selectedItemsCount == 1) - self.removeButton.setEnabled(selectedItemsCount > 1 or canBeDeleted) + self.removeButton.setEnabled(selectedItemsCount > 1 or canBeRemoved) self.removeAllButton.setEnabled( - topLevelItemCount > 1 or canAllBeDeleted) + topLevelItemCount > 1 or canAllBeRemoved) self.deleteButton.setEnabled(deletableSelectedItemCount) self.deleteAllButton.setEnabled(deletableItemCount) @@ -92,11 +95,11 @@ dlg = VirtualenvAddEditDialog(self.__manager) if dlg.exec_() == QDialog.Accepted: (venvName, venvDirectory, venvInterpreter, venvVariant, - isGlobal, isConda, execPath) = dlg.getData() + isGlobal, isConda, isRemote, execPath) = dlg.getData() - self.__manager.addVirtualEnv(venvName, venvDirectory, - venvInterpreter, venvVariant, - isGlobal, isConda, execPath) + self.__manager.addVirtualEnv( + venvName, venvDirectory, venvInterpreter, venvVariant, + isGlobal, isConda, isRemote, execPath) @pyqtSlot() def on_newButton_clicked(self): @@ -120,19 +123,20 @@ selectedItem.data(0, VirtualenvManagerDialog.PythonVariantRole), selectedItem.data(0, VirtualenvManagerDialog.IsGlobalRole), selectedItem.data(0, VirtualenvManagerDialog.IsCondaRole), + selectedItem.data(0, VirtualenvManagerDialog.IsRemoteRole), selectedItem.data(0, VirtualenvManagerDialog.ExecPathRole), ) if dlg.exec_() == QDialog.Accepted: (venvName, venvDirectory, venvInterpreter, venvVariant, - isGlobal, isConda, execPath) = dlg.getData() + isGlobal, isConda, isRemote, execPath) = dlg.getData() if venvName != oldVenvName: self.__manager.renameVirtualEnv( oldVenvName, venvName, venvDirectory, venvInterpreter, - venvVariant, isGlobal, isConda, execPath) + venvVariant, isGlobal, isConda, isRemote, execPath) else: self.__manager.setVirtualEnv( venvName, venvDirectory, venvInterpreter, venvVariant, - isGlobal, isConda, execPath) + isGlobal, isConda, isRemote, execPath) @pyqtSlot() def on_removeButton_clicked(self): @@ -232,22 +236,33 @@ environments[venvName]["is_global"]) itm.setData(0, VirtualenvManagerDialog.IsCondaRole, environments[venvName]["is_conda"]) + itm.setData(0, VirtualenvManagerDialog.IsRemoteRole, + environments[venvName]["is_remote"]) itm.setData(0, VirtualenvManagerDialog.ExecPathRole, environments[venvName]["exec_path"]) - # show global environments with bold font - if environments[venvName]["is_global"]: + # show remote environments with underlined font + if environments[venvName]["is_remote"]: font = itm.font(0) - font.setBold(True) + font.setUnderline(True) for column in range(itm.columnCount()): itm.setFont(column, font) - - # show Anaconda environments with italic font - if environments[venvName]["is_conda"]: - font = itm.font(0) - font.setItalic(True) - for column in range(itm.columnCount()): - itm.setFont(column, font) + else: + # local environments + + # show global environments with bold font + if environments[venvName]["is_global"]: + font = itm.font(0) + font.setBold(True) + for column in range(itm.columnCount()): + itm.setFont(column, font) + + # show Anaconda environments with italic font + if environments[venvName]["is_conda"]: + font = itm.font(0) + font.setItalic(True) + for column in range(itm.columnCount()): + itm.setFont(column, font) self.__resizeSections()