--- a/eric6/Plugins/VcsPlugins/vcsSubversion/SvnRepoBrowserDialog.py Fri Oct 09 17:19:29 2020 +0200 +++ b/eric6/Plugins/VcsPlugins/vcsSubversion/SvnRepoBrowserDialog.py Sat Oct 10 12:20:51 2020 +0200 @@ -10,7 +10,6 @@ import os -from PyQt5.QtGui import QCursor from PyQt5.QtWidgets import ( QHeaderView, QLineEdit, QDialog, QApplication, QDialogButtonBox, QTreeWidgetItem @@ -18,6 +17,7 @@ from PyQt5.QtCore import QTimer, QProcess, QRegExp, Qt, pyqtSlot from E5Gui import E5MessageBox +from E5Gui.E5OverrideCursor import E5OverrideCursorProcess from .Ui_SvnRepoBrowserDialog import Ui_SvnRepoBrowserDialog @@ -49,10 +49,10 @@ self.vcs = vcs self.mode = mode - self.process = QProcess() - self.process.finished.connect(self.__procFinished) - self.process.readyReadStandardOutput.connect(self.__readStdout) - self.process.readyReadStandardError.connect(self.__readStderr) + self.__process = E5OverrideCursorProcess() + self.__process.finished.connect(self.__procFinished) + self.__process.readyReadStandardOutput.connect(self.__readStdout) + self.__process.readyReadStandardError.connect(self.__readStderr) if self.mode == "select": self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False) @@ -82,12 +82,12 @@ @param e close event (QCloseEvent) """ if ( - self.process is not None and - self.process.state() != QProcess.NotRunning + self.__process is not None and + self.__process.state() != QProcess.NotRunning ): - self.process.terminate() - QTimer.singleShot(2000, self.process.kill) - self.process.waitForFinished(3000) + self.__process.terminate() + QTimer.singleShot(2000, self.__process.kill) + self.__process.waitForFinished(3000) e.accept() @@ -195,7 +195,6 @@ self.errors.insertPlainText(error) self.errors.ensureCursorVisible() else: - QApplication.restoreOverrideCursor() E5MessageBox.critical( self, self.tr('Process Generation Error'), @@ -215,9 +214,6 @@ """ self.errorGroup.hide() - QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) - QApplication.processEvents() - self.repoUrl = url if parent is None: @@ -250,7 +246,7 @@ self.intercept = False - self.process.kill() + self.__process.kill() args = [] args.append('list') @@ -259,8 +255,8 @@ args.append('--verbose') args.append(url) - self.process.start('svn', args) - procStarted = self.process.waitForStarted(5000) + self.__process.start('svn', args) + procStarted = self.__process.waitForStarted(5000) if not procStarted: self.__finish() self.inputGroup.setEnabled(False) @@ -370,19 +366,18 @@ button. """ if ( - self.process is not None and - self.process.state() != QProcess.NotRunning + self.__process is not None and + self.__process.state() != QProcess.NotRunning ): - self.process.terminate() - QTimer.singleShot(2000, self.process.kill) - self.process.waitForFinished(3000) + self.__process.terminate() + QTimer.singleShot(2000, self.__process.kill) + self.__process.waitForFinished(3000) self.inputGroup.setEnabled(False) self.inputGroup.hide() self.__resizeColumns() self.__resort() - QApplication.restoreOverrideCursor() def __procFinished(self, exitCode, exitStatus): """ @@ -400,11 +395,11 @@ It reads the output of the process, formats it and inserts it into the contents pane. """ - if self.process is not None: - self.process.setReadChannel(QProcess.StandardOutput) + if self.__process is not None: + self.__process.setReadChannel(QProcess.StandardOutput) - while self.process.canReadLine(): - s = str(self.process.readLine(), + while self.__process.canReadLine(): + s = str(self.__process.readLine(), Preferences.getSystem("IOEncoding"), 'replace') if self.__rx_dir.exactMatch(s): @@ -438,8 +433,8 @@ It reads the error output of the process and inserts it into the error pane. """ - if self.process is not None: - s = str(self.process.readAllStandardError(), + if self.__process is not None: + s = str(self.__process.readAllStandardError(), Preferences.getSystem("IOEncoding"), 'replace') self.errors.insertPlainText(s) @@ -472,7 +467,7 @@ self.errors.insertPlainText(inputTxt) self.errors.ensureCursorVisible() - self.process.write(strToQByteArray(inputTxt)) + self.__process.write(strToQByteArray(inputTxt)) self.passwordCheckBox.setChecked(False) self.input.clear()