eric6/PipInterface/PipPackagesWidget.py

changeset 8152
0c740fcffd34
parent 8143
2c730d5fd177
child 8218
7c09585bd960
diff -r 8c1445825e7b -r 0c740fcffd34 eric6/PipInterface/PipPackagesWidget.py
--- a/eric6/PipInterface/PipPackagesWidget.py	Thu Mar 04 17:48:09 2021 +0100
+++ b/eric6/PipInterface/PipPackagesWidget.py	Thu Mar 04 19:39:54 2021 +0100
@@ -992,6 +992,9 @@
         self.__installRequirementsAct = self.__pipMenu.addAction(
             self.tr("Install Requirements"),
             self.__installRequirements)
+        self.__reinstallPackagesAct = self.__pipMenu.addAction(
+            self.tr("Re-Install Selected Packages"),
+            self.__reinstallPackages)
         self.__uninstallRequirementsAct = self.__pipMenu.addAction(
             self.tr("Uninstall Requirements"),
             self.__uninstallRequirements)
@@ -1043,6 +1046,7 @@
         
         self.__installPackagesAct.setEnabled(enablePip)
         self.__installLocalPackageAct.setEnabled(enablePip)
+        self.__reinstallPackagesAct.setEnabled(enablePip)
         
         self.__installRequirementsAct.setEnabled(enablePip)
         self.__uninstallRequirementsAct.setEnabled(enablePip)
@@ -1115,6 +1119,18 @@
                     self.executeInstallPackages([package], userSite=user)
     
     @pyqtSlot()
+    def __reinstallPackages(self):
+        """
+        Private slot to force a re-installation of the selected packages.
+        """
+        packages = [itm.text(0) for itm in self.packagesList.selectedItems()]
+        venvName = self.environmentsComboBox.currentText()
+        if venvName and packages:
+            self.__pip.installPackages(packages, venvName=venvName,
+                                       forceReinstall=True)
+            self.on_refreshButton_clicked()
+    
+    @pyqtSlot()
     def __installRequirements(self):
         """
         Private slot to install packages as given in a requirements file.

eric ide

mercurial