src/eric7/PipInterface/PipPackagesWidget.py

branch
eric7
changeset 10210
7d0e5ca7eb3e
parent 10209
8bb763e85937
child 10222
1146cc8fbf5d
child 10408
8824b6d71a11
diff -r 8bb763e85937 -r 7d0e5ca7eb3e src/eric7/PipInterface/PipPackagesWidget.py
--- a/src/eric7/PipInterface/PipPackagesWidget.py	Thu Sep 14 15:54:56 2023 +0200
+++ b/src/eric7/PipInterface/PipPackagesWidget.py	Fri Sep 15 10:27:46 2023 +0200
@@ -274,6 +274,8 @@
         self.viewsStackWidget.setCurrentWidget(self.packagesPage)
         self.on_packagesList_currentItemChanged(None, None)
 
+        self.preferencesChanged()  # perform preferences dependent configuration
+
     @pyqtSlot()
     def __projectOpened(self):
         """
@@ -1670,6 +1672,8 @@
         self.packagesList.setColumnHidden(
             PipPackagesWidget.VulnerabilityColumn, not enable
         )
+        if not enable:
+            self.__clearVulnerabilityInfo()
 
     @pyqtSlot(bool)
     def on_vulnerabilityCheckBox_clicked(self, checked):
@@ -1681,6 +1685,8 @@
         """
         if checked:
             self.__updateVulnerabilityData(clearFirst=True)
+        else:
+            self.__clearVulnerabilityInfo()
 
         self.packagesList.header().setSectionHidden(
             PipPackagesWidget.VulnerabilityColumn, not checked
@@ -1732,33 +1738,37 @@
                 )
             )
 
-        error, vulnerabilities = self.__pip.getVulnerabilityChecker().check(packages)
-        if error == VulnerabilityCheckError.OK:
-            for package in vulnerabilities:
-                items = self.packagesList.findItems(
-                    package, Qt.MatchFlag.MatchExactly | Qt.MatchFlag.MatchCaseSensitive
-                )
-                if items:
-                    itm = items[0]
-                    itm.setData(
-                        PipPackagesWidget.VulnerabilityColumn,
-                        PipPackagesWidget.VulnerabilityRole,
-                        vulnerabilities[package],
+        if packages:
+            error, vulnerabilities = self.__pip.getVulnerabilityChecker().check(
+                packages
+            )
+            if error == VulnerabilityCheckError.OK:
+                for package in vulnerabilities:
+                    items = self.packagesList.findItems(
+                        package,
+                        Qt.MatchFlag.MatchExactly | Qt.MatchFlag.MatchCaseSensitive,
                     )
-                    affected = {v.spec for v in vulnerabilities[package]}
-                    itm.setText(
-                        PipPackagesWidget.VulnerabilityColumn, ", ".join(affected)
-                    )
-                    itm.setIcon(
-                        PipPackagesWidget.VulnerabilityColumn,
-                        EricPixmapCache.getIcon("securityLow"),
-                    )
+                    if items:
+                        itm = items[0]
+                        itm.setData(
+                            PipPackagesWidget.VulnerabilityColumn,
+                            PipPackagesWidget.VulnerabilityRole,
+                            vulnerabilities[package],
+                        )
+                        affected = {v.spec for v in vulnerabilities[package]}
+                        itm.setText(
+                            PipPackagesWidget.VulnerabilityColumn, ", ".join(affected)
+                        )
+                        itm.setIcon(
+                            PipPackagesWidget.VulnerabilityColumn,
+                            EricPixmapCache.getIcon("securityLow"),
+                        )
 
-        elif error in (
-            VulnerabilityCheckError.FullDbUnavailable,
-            VulnerabilityCheckError.SummaryDbUnavailable,
-        ):
-            self.setVulnerabilityEnabled(False)
+            elif error in (
+                VulnerabilityCheckError.FullDbUnavailable,
+                VulnerabilityCheckError.SummaryDbUnavailable,
+            ):
+                self.setVulnerabilityEnabled(False)
 
     @pyqtSlot()
     def __updateVulnerabilityDbCache(self):

eric ide

mercurial