Sun, 08 Nov 2020 11:42:46 +0100
PipInterface: some little enhancements.
--- 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):