PipInterface: some little enhancements.

Sun, 08 Nov 2020 11:42:46 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 08 Nov 2020 11:42:46 +0100
changeset 7826
704c46e040a2
parent 7823
9a4e93471a06
child 7827
3d42837a8b66

PipInterface: some little enhancements.

docs/changelog file | annotate | diff | comparison | revisions
eric6/PipInterface/PipDialog.py file | annotate | diff | comparison | revisions
eric6/PipInterface/PipDialog.ui file | annotate | diff | comparison | revisions
eric6/PipInterface/PipPackagesWidget.py file | annotate | diff | comparison | revisions
--- a/docs/changelog	Sun Nov 01 11:07:43 2020 +0100
+++ b/docs/changelog	Sun Nov 08 11:42:46 2020 +0100
@@ -1,5 +1,8 @@
 Change Log
 ----------
+Version 20.12:
+- bug fixes
+
 Version 20.11:
 - bug fixes
 - Editor
--- a/eric6/PipInterface/PipDialog.py	Sun Nov 01 11:07:43 2020 +0100
+++ b/eric6/PipInterface/PipDialog.py	Sun Nov 08 11:42:46 2020 +0100
@@ -36,6 +36,9 @@
         super(PipDialog, self).__init__(parent)
         self.setupUi(self)
         
+        self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
+        self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
+        
         self.proc = None
         self.__processQueue = []
         self.__ioEncoding = Preferences.getSystem("IOEncoding")
@@ -52,18 +55,7 @@
         @param e close event
         @type QCloseEvent
         """
-        self.__processQueue = []
-        
-        if (
-            self.proc is not None and
-            self.proc.state() != QProcess.NotRunning
-        ):
-            self.proc.terminate()
-            QTimer.singleShot(2000, self.proc.kill)
-            self.proc.waitForFinished(3000)
-        
-        self.proc = None
-        
+        self.__cancel()
         e.accept()
     
     def __finish(self):
@@ -81,14 +73,38 @@
         
         self.proc = None
         
-        self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
-        self.buttonBox.button(QDialogButtonBox.Close).setFocus(
-            Qt.OtherFocusReason)
-        
         if self.__processQueue:
             cmd, args = self.__processQueue.pop(0)
             self.__addOutput("\n\n")
             self.startProcess(cmd, args)
+        else:
+            self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
+            self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False)
+            self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
+            self.buttonBox.button(QDialogButtonBox.Close).setFocus(
+                Qt.OtherFocusReason)
+    
+    def __cancel(self):
+        """
+        Private slot to cancel the current action.
+        """
+        self.__processQueue = []
+        
+        if (
+            self.proc is not None and
+            self.proc.state() != QProcess.NotRunning
+        ):
+            self.proc.terminate()
+            QTimer.singleShot(2000, self.proc.kill)
+            self.proc.waitForFinished(3000)
+        
+        self.proc = None
+        
+        self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
+        self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False)
+        self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
+        self.buttonBox.button(QDialogButtonBox.Close).setFocus(
+            Qt.OtherFocusReason)
     
     @pyqtSlot(QAbstractButton)
     def on_buttonBox_clicked(self, button):
@@ -100,6 +116,8 @@
         """
         if button == self.buttonBox.button(QDialogButtonBox.Close):
             self.close()
+        elif button == self.buttonBox.button(QDialogButtonBox.Cancel):
+            self.__cancel()
     
     def __procFinished(self, exitCode, exitStatus):
         """
--- a/eric6/PipInterface/PipDialog.ui	Sun Nov 01 11:07:43 2020 +0100
+++ b/eric6/PipInterface/PipDialog.ui	Sun Nov 08 11:42:46 2020 +0100
@@ -73,7 +73,7 @@
       <enum>Qt::Horizontal</enum>
      </property>
      <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Close</set>
      </property>
     </widget>
    </item>
--- a/eric6/PipInterface/PipPackagesWidget.py	Sun Nov 01 11:07:43 2020 +0100
+++ b/eric6/PipInterface/PipPackagesWidget.py	Sun Nov 08 11:42:46 2020 +0100
@@ -831,6 +831,7 @@
             if packages:
                 self.__pip.installPackages(packages, venvName=venvName,
                                            userSite=userSite)
+                self.on_refreshButton_clicked()
     
     @pyqtSlot()
     def on_showDetailsButton_clicked(self):
@@ -1014,6 +1015,7 @@
         venvName = self.environmentsComboBox.currentText()
         if venvName:
             self.__pip.installPip(venvName)
+            self.on_refreshButton_clicked()
     
     @pyqtSlot()
     def __installPipUser(self):
@@ -1024,6 +1026,7 @@
         venvName = self.environmentsComboBox.currentText()
         if venvName:
             self.__pip.installPip(venvName, userSite=True)
+            self.on_refreshButton_clicked()
     
     @pyqtSlot()
     def __repairPip(self):
@@ -1034,6 +1037,7 @@
         venvName = self.environmentsComboBox.currentText()
         if venvName:
             self.__pip.repairPip(venvName)
+            self.on_refreshButton_clicked()
     
     @pyqtSlot()
     def __installPackages(self):
@@ -1049,6 +1053,7 @@
                 if packages:
                     self.__pip.installPackages(packages, venvName=venvName,
                                                userSite=user)
+                    self.on_refreshButton_clicked()
     
     @pyqtSlot()
     def __installLocalPackage(self):
@@ -1064,6 +1069,7 @@
                 if package and os.path.exists(package):
                     self.__pip.installPackages([package], venvName=venvName,
                                                userSite=user)
+                    self.on_refreshButton_clicked()
     
     @pyqtSlot()
     def __installRequirements(self):
@@ -1073,6 +1079,7 @@
         venvName = self.environmentsComboBox.currentText()
         if venvName:
             self.__pip.installRequirements(venvName)
+            self.on_refreshButton_clicked()
     
     @pyqtSlot()
     def __uninstallRequirements(self):
@@ -1082,6 +1089,7 @@
         venvName = self.environmentsComboBox.currentText()
         if venvName:
             self.__pip.uninstallRequirements(venvName)
+            self.on_refreshButton_clicked()
     
     @pyqtSlot()
     def __generateRequirements(self):

eric ide

mercurial