--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgDiffGenerator.py Fri Oct 09 17:19:29 2020 +0200 +++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgDiffGenerator.py Sat Oct 10 12:20:51 2020 +0200 @@ -11,6 +11,8 @@ from PyQt5.QtCore import pyqtSignal, QObject +from E5Gui.E5OverrideCursor import E5OverrideCursor + class HgDiffGenerator(QObject): """ @@ -64,59 +66,60 @@ @return flag indicating a successful start of the diff command (boolean) """ - if qdiff: - args = self.vcs.initCommand("qdiff") - else: - args = self.vcs.initCommand("diff") - - if self.vcs.hasSubrepositories(): - args.append("--subrepos") - - if bundle: - args.append('--repository') - args.append(bundle) - elif self.vcs.bundleFile and os.path.exists(self.vcs.bundleFile): - args.append('--repository') - args.append(self.vcs.bundleFile) - - if versions is not None: - rev1 = self.__getVersionArg(versions[0]) - rev2 = None - if len(versions) == 2: - rev2 = self.__getVersionArg(versions[1]) + with E5OverrideCursor(): + if qdiff: + args = self.vcs.initCommand("qdiff") + else: + args = self.vcs.initCommand("diff") + + if self.vcs.hasSubrepositories(): + args.append("--subrepos") + + if bundle: + args.append('--repository') + args.append(bundle) + elif self.vcs.bundleFile and os.path.exists(self.vcs.bundleFile): + args.append('--repository') + args.append(self.vcs.bundleFile) - if rev1 is not None or rev2 is not None: - args.append('-r') - if rev1 is not None and rev2 is not None: - args.append('{0}:{1}'.format(rev1, rev2)) - elif rev2 is None: - args.append(rev1) - elif rev1 is None: - args.append(':{0}'.format(rev2)) - - if isinstance(fn, list): - dname, fnames = self.vcs.splitPathList(fn) - self.vcs.addArguments(args, fn) - else: - dname, fname = self.vcs.splitPath(fn) - args.append(fn) - - self.__oldFile = "" - self.__oldFileLine = -1 - self.__fileSeparators = [] - self.__output = [] - self.__errors = [] - - out, err = self.__hgClient.runcommand(args) - - if err: - self.__errors = err.splitlines(True) - - if out: - for line in out.splitlines(True): - self.__processOutputLine(line) - if self.__hgClient.wasCanceled(): - break + if versions is not None: + rev1 = self.__getVersionArg(versions[0]) + rev2 = None + if len(versions) == 2: + rev2 = self.__getVersionArg(versions[1]) + + if rev1 is not None or rev2 is not None: + args.append('-r') + if rev1 is not None and rev2 is not None: + args.append('{0}:{1}'.format(rev1, rev2)) + elif rev2 is None: + args.append(rev1) + elif rev1 is None: + args.append(':{0}'.format(rev2)) + + if isinstance(fn, list): + dname, fnames = self.vcs.splitPathList(fn) + self.vcs.addArguments(args, fn) + else: + dname, fname = self.vcs.splitPath(fn) + args.append(fn) + + self.__oldFile = "" + self.__oldFileLine = -1 + self.__fileSeparators = [] + self.__output = [] + self.__errors = [] + + out, err = self.__hgClient.runcommand(args) + + if err: + self.__errors = err.splitlines(True) + + if out: + for line in out.splitlines(True): + self.__processOutputLine(line) + if self.__hgClient.wasCanceled(): + break self.__finish()