--- a/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListDialog.py Wed Aug 31 18:44:04 2011 +0200 +++ b/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListDialog.py Wed Aug 31 19:28:49 2011 +0200 @@ -60,11 +60,15 @@ @param e close event (QCloseEvent) """ - if self.process is not None and \ - self.process.state() != QProcess.NotRunning: - self.process.terminate() - QTimer.singleShot(2000, self.process.kill) - self.process.waitForFinished(3000) + if self.__hgClient: + if self.__hgClient.isExecuting(): + self.__hgClient.cancel() + else: + if self.process is not None and \ + self.process.state() != QProcess.NotRunning: + self.process.terminate() + QTimer.singleShot(2000, self.process.kill) + self.process.waitForFinished(3000) e.accept() @@ -121,6 +125,9 @@ if out: for line in out.splitlines(): self.__processOutputLine(line) + if self.__hgClient.wasCanceled(): + self.__mode = "" + break if self.__mode == "qseries": self.__getSeries(True) elif self.__mode == "missing": @@ -165,6 +172,8 @@ if out: for line in out.splitlines(): self.__processOutputLine(line) + if self.__hgClient.wasCanceled(): + break self.__finish() else: self.process.kill()