diff -r 0d7392e49c48 -r 2c26b4fe25db src/eric7/VirtualEnv/VirtualenvManagerWidgets.py --- a/src/eric7/VirtualEnv/VirtualenvManagerWidgets.py Tue Sep 05 14:17:29 2023 +0200 +++ b/src/eric7/VirtualEnv/VirtualenvManagerWidgets.py Wed Sep 06 10:28:50 2023 +0200 @@ -34,11 +34,7 @@ environments. """ - IsGlobalRole = Qt.ItemDataRole.UserRole + 1 - IsCondaRole = Qt.ItemDataRole.UserRole + 2 - IsRemoteRole = Qt.ItemDataRole.UserRole + 3 - ExecPathRole = Qt.ItemDataRole.UserRole + 4 - DescriptionRole = Qt.ItemDataRole.UserRole + 5 + MetadataRole = Qt.ItemDataRole.UserRole + 1 def __init__(self, manager, parent=None): """ @@ -94,8 +90,8 @@ if ( itm.text(0) != "<default>" and bool(itm.text(1)) - and not itm.data(0, VirtualenvManagerWidget.IsGlobalRole) - and not itm.data(0, VirtualenvManagerWidget.IsRemoteRole) + and not itm.data(0, VirtualenvManagerWidget.MetadataRole).is_global + and not itm.data(0, VirtualenvManagerWidget.MetadataRole).is_remote ): deletableSelectedItemCount += 1 @@ -105,7 +101,7 @@ if ( itm.text(0) != "<default>" and bool(itm.text(1)) - and not itm.data(0, VirtualenvManagerWidget.IsRemoteRole) + and not itm.data(0, VirtualenvManagerWidget.MetadataRole).is_remote ): deletableItemCount += 1 @@ -151,30 +147,11 @@ from .VirtualenvAddEditDialog import VirtualenvAddEditDialog dlg = VirtualenvAddEditDialog( - self.__manager, baseDir=self.envBaseDirectoryPicker.text() + self.__manager, baseDir=self.envBaseDirectoryPicker.text(), parent=self ) if dlg.exec() == QDialog.DialogCode.Accepted: - ( - venvName, - venvDirectory, - venvInterpreter, - isGlobal, - isConda, - isRemote, - execPath, - description, - ) = dlg.getData() - - self.__manager.addVirtualEnv( - venvName, - venvDirectory, - venvInterpreter, - isGlobal, - isConda, - isRemote, - execPath, - description, - ) + metadata = dlg.getMetaData() + self.__manager.addVirtualEnv(metadata) @pyqtSlot() def on_newButton_clicked(self): @@ -195,50 +172,16 @@ dlg = VirtualenvAddEditDialog( self.__manager, - selectedItem.text(0), - selectedItem.text(1), - selectedItem.text(2), - selectedItem.data(0, VirtualenvManagerWidget.IsGlobalRole), - selectedItem.data(0, VirtualenvManagerWidget.IsCondaRole), - selectedItem.data(0, VirtualenvManagerWidget.IsRemoteRole), - selectedItem.data(0, VirtualenvManagerWidget.ExecPathRole), - selectedItem.data(0, VirtualenvManagerWidget.DescriptionRole), + selectedItem.data(0, VirtualenvManagerWidget.MetadataRole), baseDir=self.envBaseDirectoryPicker.text(), + parent=self, ) if dlg.exec() == QDialog.DialogCode.Accepted: - ( - venvName, - venvDirectory, - venvInterpreter, - isGlobal, - isConda, - isRemote, - execPath, - description, - ) = dlg.getData() - if venvName != oldVenvName: - self.__manager.renameVirtualEnv( - oldVenvName, - venvName, - venvDirectory, - venvInterpreter, - isGlobal, - isConda, - isRemote, - execPath, - description, - ) + metadata = dlg.getMetaData() + if metadata.name != oldVenvName: + self.__manager.renameVirtualEnv(oldVenvName, metadata) else: - self.__manager.setVirtualEnv( - venvName, - venvDirectory, - venvInterpreter, - isGlobal, - isConda, - isRemote, - execPath, - description, - ) + self.__manager.setVirtualEnv(metadata) @pyqtSlot() def on_upgradeButton_clicked(self): @@ -309,7 +252,9 @@ selectedItems = self.venvList.selectedItems() if len(selectedItems) == 1: self.descriptionEdit.setPlainText( - selectedItems[0].data(0, VirtualenvManagerWidget.DescriptionRole) + selectedItems[0] + .data(0, VirtualenvManagerWidget.MetadataRole) + .description ) else: self.descriptionEdit.clear() @@ -340,44 +285,19 @@ """ Private method to populate the list of virtual environments. """ - environments = self.__manager.getEnvironmentEntries() - for venvName in environments: + for environment in self.__manager.getEnvironmentEntries(): itm = QTreeWidgetItem( self.venvList, [ - venvName, - environments[venvName]["path"], - environments[venvName]["interpreter"], + environment.name, + environment.path, + environment.interpreter, ], ) - itm.setData( - 0, - VirtualenvManagerWidget.IsGlobalRole, - environments[venvName]["is_global"], - ) - itm.setData( - 0, - VirtualenvManagerWidget.IsCondaRole, - environments[venvName]["is_conda"], - ) - itm.setData( - 0, - VirtualenvManagerWidget.IsRemoteRole, - environments[venvName]["is_remote"], - ) - itm.setData( - 0, - VirtualenvManagerWidget.ExecPathRole, - environments[venvName]["exec_path"], - ) - itm.setData( - 0, - VirtualenvManagerWidget.DescriptionRole, - environments[venvName]["description"], - ) + itm.setData(0, VirtualenvManagerWidget.MetadataRole, environment) # show remote environments with underlined font - if environments[venvName]["is_remote"]: + if environment.is_remote: font = itm.font(0) font.setUnderline(True) for column in range(itm.columnCount()): @@ -386,14 +306,14 @@ # local environments # show global environments with bold font - if environments[venvName]["is_global"]: + if environment.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"]: + if environment.is_conda: font = itm.font(0) font.setItalic(True) for column in range(itm.columnCount()):