--- 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