From 3c9b04806c770d73e2043eec625c7e8647b8ee5f Mon Sep 17 00:00:00 2001 From: "Nikita.Ashihmin" Date: Sat, 31 Aug 2024 17:02:05 +0400 Subject: [PATCH] PY-33729 Packaging(fix): Differentiate conda- and pip-installed packages in the list GitOrigin-RevId: 4cf31ad0ec6415d22c8410ca72ca65f5495d6af3 --- .../packaging/toolwindow/model/modelComponents.kt | 15 +++++++++++++++ .../packages/PyPaginationAwareRenderer.kt | 1 + 2 files changed, 16 insertions(+) diff --git a/python/src/com/jetbrains/python/packaging/toolwindow/model/modelComponents.kt b/python/src/com/jetbrains/python/packaging/toolwindow/model/modelComponents.kt index 51a230bd4b7d..d75ef8c68259 100644 --- a/python/src/com/jetbrains/python/packaging/toolwindow/model/modelComponents.kt +++ b/python/src/com/jetbrains/python/packaging/toolwindow/model/modelComponents.kt @@ -2,17 +2,32 @@ package com.jetbrains.python.packaging.toolwindow.model import com.intellij.openapi.util.NlsSafe +import com.jetbrains.python.icons.PythonIcons import com.jetbrains.python.packaging.PyPackageVersion import com.jetbrains.python.packaging.PyPackageVersionComparator import com.jetbrains.python.packaging.PyPackageVersionNormalizer import com.jetbrains.python.packaging.common.PythonPackage +import com.jetbrains.python.packaging.conda.CondaPackage import com.jetbrains.python.packaging.repository.PyPackageRepository +import com.jetbrains.python.psi.icons.PythonPsiApiIcons +import javax.swing.Icon sealed class DisplayablePackage(@NlsSafe val name: String, val repository: PyPackageRepository) class InstalledPackage(val instance: PythonPackage, repository: PyPackageRepository, val nextVersion: PyPackageVersion? = null) : DisplayablePackage(instance.name, repository) { val currentVersion = PyPackageVersionNormalizer.normalize(instance.version) + val icon: Icon? + get() { + val condaPackage = instance as? CondaPackage ?: return null + return if (condaPackage.installedWithPip) { + PythonPsiApiIcons.Python + } + else { + PythonIcons.Python.Anaconda + } + } + val canBeUpdated: Boolean get() { currentVersion ?: return false diff --git a/python/src/com/jetbrains/python/packaging/toolwindow/packages/PyPaginationAwareRenderer.kt b/python/src/com/jetbrains/python/packaging/toolwindow/packages/PyPaginationAwareRenderer.kt index 74f8f267c212..e8beab097867 100644 --- a/python/src/com/jetbrains/python/packaging/toolwindow/packages/PyPaginationAwareRenderer.kt +++ b/python/src/com/jetbrains/python/packaging/toolwindow/packages/PyPaginationAwareRenderer.kt @@ -88,6 +88,7 @@ internal class PyPaginationAwareRenderer : DefaultTableCellRenderer() { versionLabel.text = version versionPanel.add(versionLabel) } + versionLabel.icon = (value as? InstalledPackage)?.icon return versionPanel }