PipxInterface/PipxWidget.py

changeset 36
5b9bc68ef028
parent 32
b7a3ae7519ba
child 43
2ef4c1f1adea
--- a/PipxInterface/PipxWidget.py	Sun Jul 28 12:06:50 2024 +0200
+++ b/PipxInterface/PipxWidget.py	Sun Jul 28 12:07:29 2024 +0200
@@ -12,6 +12,7 @@
 import psutil
 
 from PyQt6.QtCore import Qt, pyqtSlot
+from PyQt6.QtGui import QIcon
 from PyQt6.QtWidgets import QDialog, QMenu, QTreeWidgetItem, QWidget
 
 from eric7.EricGui import EricPixmapCache
@@ -349,6 +350,8 @@
                     and outdatedDependencies
                 ):
                     self.__markPackageDependenciesOutdated(itm)
+                else:
+                    self.__markPackageClean(itm)
         self.__resizePackagesColumns()
 
     @pyqtSlot()
@@ -399,6 +402,7 @@
         Private slot to upgrade the shared libraries.
         """
         self.__pipx.upgradeSharedLibraries()
+        self.on_refreshButton_clicked()
 
     @pyqtSlot()
     def __uninstallPackage(self):
@@ -485,6 +489,9 @@
         @type QTreeWidgetItem
         @param latestVersion latest version of the package
         @type str
+        @param outdatedDependencies flag indicating the existence of outdated
+            dependencies
+        @type bool
         """
         version = item.data(0, PipxWidget.VersionRole)
         item.setData(0, PipxWidget.LatestVersionRole, latestVersion)
@@ -507,6 +514,20 @@
         item.setData(0, PipxWidget.OutdatedDependenciesRole, True)
         item.setIcon(PipxWidget.VersionColumn, EricPixmapCache.getIcon("upgrade"))
 
+    def __markPackageClean(self, item):
+        """
+        Private method to mark the given package item as clean (i.e. not outdated nor
+        having outdated dependencies).
+
+        @param item reference to the outdated package item
+        @type QTreeWidgetItem
+        """
+        version = item.data(0, PipxWidget.VersionRole)
+        item.setData(0, PipxWidget.LatestVersionRole, "")
+        item.setData(0, PipxWidget.OutdatedDependenciesRole, False)
+        item.setText(PipxWidget.VersionColumn, version)
+        item.setIcon(PipxWidget.VersionColumn, QIcon())
+
     def __populatePackages(self):
         """
         Private method to populate the packages list.
@@ -645,10 +666,10 @@
         @rtype list of str
         """
         apps = []
-        
+
         for row in range(packageItem.childCount()):
             apps.append(packageItem.child(row).text(0))
-        
+
         return apps
 
     def __getRunningApps(self, apps):
@@ -675,7 +696,7 @@
     def __getAllRunningApps(self):
         """
         Private method to determine all running pipx managed apps.
-        
+
         @return set of running apps
         @rtype set of str
         """

eric ide

mercurial