src/eric7/PipInterface/PipPackagesWidget.py

branch
eric7
changeset 11091
3a1ba42ac50a
parent 11090
f5f5f5803935
child 11093
e8932a99beb4
--- a/src/eric7/PipInterface/PipPackagesWidget.py	Tue Dec 10 15:46:34 2024 +0100
+++ b/src/eric7/PipInterface/PipPackagesWidget.py	Wed Dec 11 18:12:50 2024 +0100
@@ -214,6 +214,7 @@
         self.installButton.setIcon(EricPixmapCache.getIcon("plus"))
         self.installUserSiteButton.setIcon(EricPixmapCache.getIcon("addUser"))
         self.showDetailsButton.setIcon(EricPixmapCache.getIcon("info"))
+        self.cleanupButton.setIcon(EricPixmapCache.getIcon("clear"))
 
         self.refreshDependenciesButton.setIcon(EricPixmapCache.getIcon("reload"))
         self.showDepPackageDetailsButton.setIcon(EricPixmapCache.getIcon("info"))
@@ -431,11 +432,13 @@
             self.showPackageDetailsButton.setEnabled(
                 len(self.packagesList.selectedItems()) == 1
             )
+            self.cleanupButton.setEnabled(True)
         else:
             self.upgradeButton.setEnabled(False)
             self.uninstallButton.setEnabled(False)
             self.upgradeAllButton.setEnabled(False)
             self.showPackageDetailsButton.setEnabled(False)
+            self.cleanupButton.setEnabled(False)
 
     def __refreshPackagesList(self):
         """
@@ -546,6 +549,9 @@
                 self.__refreshPackagesList()
             self.__selectedEnvironment = name
 
+            ##self.cleanupButton.setEnabled(bool(name))
+            self.__updateActionButtons()
+
     @pyqtSlot()
     def on_localCheckBox_clicked(self):
         """
@@ -837,6 +843,30 @@
                 upgradable=upgradable,
             )
 
+    @pyqtSlot()
+    def on_cleanupButton_clicked(self):
+        """
+        Private slot to cleanup the site-packages directory of the selected
+        environment.
+        """
+        envName = self.environmentsComboBox.currentText()
+        if envName:
+            ok = self.__pip.runCleanup(envName=envName)
+            if ok:
+                EricMessageBox.information(
+                    self,
+                    self.tr("Cleanup Environment"),
+                    self.tr("The environment cleanup was successful."),
+                )
+            else:
+                EricMessageBox.warning(
+                    self,
+                    self.tr("Cleanup Environment"),
+                    self.tr(
+                        "Some leftover package directories could not been removed."
+                        " Delete them manually."),
+                )
+
     #######################################################################
     ## Search widget related methods below
     #######################################################################

eric ide

mercurial