PipxInterface/PipxWidget.py

changeset 11
6af0704c8175
parent 10
89e0e6e5ca7a
child 12
a09f763d5e1f
--- a/PipxInterface/PipxWidget.py	Thu Jun 27 15:42:50 2024 +0200
+++ b/PipxInterface/PipxWidget.py	Thu Jun 27 16:20:56 2024 +0200
@@ -63,8 +63,8 @@
         self.uninstallButton.setIcon(EricPixmapCache.getIcon("minus"))
 
         self.installButton.clicked.connect(self.__installPackages)
-        self.upgradeButton.clicked.connect(self.__upgradePackages)
-        self.uninstallButton.clicked.connect(self.__uninstallPackages)
+        self.upgradeButton.clicked.connect(self.__upgradePackage)
+        self.uninstallButton.clicked.connect(self.__uninstallPackage)
 
         self.pipxMenuButton.setAutoRaise(True)
         self.pipxMenuButton.setShowMenuInside(True)
@@ -123,7 +123,7 @@
 
         self.__upgradeSubmenu = QMenu(self.tr("Upgrade"))
         self.__upgradePackagesAct = self.__upgradeSubmenu.addAction(
-            self.tr("Upgrade Selected Packages"), self.__upgradePackages
+            self.tr("Upgrade Selected Package"), self.__upgradePackage
         )
         self.__upgradeAllPackagesAct = self.__upgradeSubmenu.addAction(
             self.tr("Upgrade All Packages"), self.__upgradeAllPackages
@@ -139,7 +139,7 @@
 
         self.__uninstallSubmenu = QMenu(self.tr("Uninstall"))
         self.__uninstallPackagesAct = self.__uninstallSubmenu.addAction(
-            self.tr("Uninstall Selected Packages"), self.__uninstallPackages
+            self.tr("Uninstall Selected Package"), self.__uninstallPackage
         )
         self.__uninstallAllPackagesAct = self.__uninstallSubmenu.addAction(
             self.tr("Uninstall All Packages"), self.__uninstallAllPackages
@@ -277,9 +277,9 @@
         pass
 
     @pyqtSlot()
-    def __upgradePackages(self):
+    def __upgradePackage(self):
         """
-        Private slot to upgrade the selected packages.
+        Private slot to upgrade the selected package.
         """
         # TODO: not implemented yet
         pass
@@ -301,12 +301,21 @@
         pass
 
     @pyqtSlot()
-    def __uninstallPackages(self):
+    def __uninstallPackage(self):
+        """
+        Private slot to uninstall the selected package.
         """
-        Private slot to uninstall the selected packages.
-        """
-        # TODO: not implemented yet
-        pass
+        package = self.__selectedPackages()[0]
+        yes = EricMessageBox.yesNo(
+            self,
+            self.tr("Uninstall Package"),
+            self.tr(
+                "<p>Shall the package <b>{0}</b> really be uninstalled?</p>"
+            ).format(package),
+        )
+        if yes:
+            self.__pipx.uninstallPackage(package)
+            self.on_refreshButton_clicked()
 
     @pyqtSlot()
     def __uninstallAllPackages(self):
@@ -314,7 +323,16 @@
         Private slot to uninstall all packages.
         """
         # TODO: not implemented yet
-        pass
+        yes = EricMessageBox.yesNo(
+            self,
+            self.tr("Uninstall All Packages"),
+            self.tr(
+                "<p>Do you really want to uninstall <b>ALL</b> packages?</p>"
+            ),
+        )
+        if yes:
+            self.__pipx.uninstallAllPackages()
+            self.on_refreshButton_clicked()
 
     #######################################################################
     ## Main widget related methods below

eric ide

mercurial