diff -r 49f3377aebf1 -r 787a6b3f8c9f eric6/Plugins/VcsPlugins/vcsPySvn/SvnLogBrowserDialog.py --- a/eric6/Plugins/VcsPlugins/vcsPySvn/SvnLogBrowserDialog.py Fri Oct 09 17:19:29 2020 +0200 +++ b/eric6/Plugins/VcsPlugins/vcsPySvn/SvnLogBrowserDialog.py Sat Oct 10 12:20:51 2020 +0200 @@ -13,12 +13,12 @@ import pysvn from PyQt5.QtCore import QMutexLocker, QDate, QRegExp, Qt, pyqtSlot, QPoint -from PyQt5.QtGui import QCursor from PyQt5.QtWidgets import ( QHeaderView, QWidget, QApplication, QDialogButtonBox, QTreeWidgetItem ) from E5Gui import E5MessageBox +from E5Gui.E5OverrideCursor import E5OverrideCursor from .SvnUtilities import formatTime, dateFromTime_t from .SvnDialogMixin import SvnDialogMixin @@ -264,9 +264,6 @@ fetchLimit = 10 self._reset() - QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) - QApplication.processEvents() - limit = self.limitSpinBox.value() if startRev is None: start = pysvn.Revision(pysvn.opt_revision_kind.head) @@ -277,70 +274,71 @@ except TypeError: start = pysvn.Revision(pysvn.opt_revision_kind.head) - locker = QMutexLocker(self.vcs.vcsExecutionMutex) - cwd = os.getcwd() - os.chdir(self.dname) - try: - nextRev = 0 - fetched = 0 - logs = [] - while fetched < limit: - flimit = min(fetchLimit, limit - fetched) - if fetched == 0: - revstart = start - else: - revstart = pysvn.Revision( - pysvn.opt_revision_kind.number, nextRev) - allLogs = self.client.log( - self.fname, revision_start=revstart, - discover_changed_paths=True, limit=flimit + 1, - strict_node_history=self.stopCheckBox.isChecked()) - if len(allLogs) <= flimit or self._clientCancelCallback(): - logs.extend(allLogs) - break - else: - logs.extend(allLogs[:-1]) - nextRev = allLogs[-1]["revision"].number - fetched += fetchLimit - locker.unlock() - - for log in logs: - author = log["author"] - message = log["message"] - self.__generateLogItem( - author, log["date"], message, - log["revision"], log['changed_paths']) - dt = dateFromTime_t(log["date"]) - if ( - not self.__maxDate.isValid() and - not self.__minDate.isValid() - ): - self.__maxDate = dt - self.__minDate = dt - else: - if self.__maxDate < dt: + with E5OverrideCursor(): + locker = QMutexLocker(self.vcs.vcsExecutionMutex) + cwd = os.getcwd() + os.chdir(self.dname) + try: + nextRev = 0 + fetched = 0 + logs = [] + while fetched < limit: + flimit = min(fetchLimit, limit - fetched) + if fetched == 0: + revstart = start + else: + revstart = pysvn.Revision( + pysvn.opt_revision_kind.number, nextRev) + allLogs = self.client.log( + self.fname, revision_start=revstart, + discover_changed_paths=True, limit=flimit + 1, + strict_node_history=self.stopCheckBox.isChecked()) + if len(allLogs) <= flimit or self._clientCancelCallback(): + logs.extend(allLogs) + break + else: + logs.extend(allLogs[:-1]) + nextRev = allLogs[-1]["revision"].number + fetched += fetchLimit + locker.unlock() + + for log in logs: + author = log["author"] + message = log["message"] + self.__generateLogItem( + author, log["date"], message, + log["revision"], log['changed_paths']) + dt = dateFromTime_t(log["date"]) + if ( + not self.__maxDate.isValid() and + not self.__minDate.isValid() + ): self.__maxDate = dt - if self.__minDate > dt: self.__minDate = dt - if len(logs) < limit and not self.cancelled: - self.nextButton.setEnabled(False) - self.limitSpinBox.setEnabled(False) - self.__filterLogsEnabled = False - self.fromDate.setMinimumDate(self.__minDate) - self.fromDate.setMaximumDate(self.__maxDate) - self.fromDate.setDate(self.__minDate) - self.toDate.setMinimumDate(self.__minDate) - self.toDate.setMaximumDate(self.__maxDate) - self.toDate.setDate(self.__maxDate) - self.__filterLogsEnabled = True - - self.__resizeColumnsLog() - self.__resortLog() - self.__filterLogs() - except pysvn.ClientError as e: - locker.unlock() - self.__showError(e.args[0]) - os.chdir(cwd) + else: + if self.__maxDate < dt: + self.__maxDate = dt + if self.__minDate > dt: + self.__minDate = dt + if len(logs) < limit and not self.cancelled: + self.nextButton.setEnabled(False) + self.limitSpinBox.setEnabled(False) + self.__filterLogsEnabled = False + self.fromDate.setMinimumDate(self.__minDate) + self.fromDate.setMaximumDate(self.__maxDate) + self.fromDate.setDate(self.__minDate) + self.toDate.setMinimumDate(self.__minDate) + self.toDate.setMaximumDate(self.__maxDate) + self.toDate.setDate(self.__maxDate) + self.__filterLogsEnabled = True + + self.__resizeColumnsLog() + self.__resortLog() + self.__filterLogs() + except pysvn.ClientError as e: + locker.unlock() + self.__showError(e.args[0]) + os.chdir(cwd) self.__finish() def start(self, fn, isFile=False): @@ -370,8 +368,6 @@ """ Private slot called when the user pressed the button. """ - QApplication.restoreOverrideCursor() - self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)