diff -r e1d8a8a4d40c -r 885706dbb69f Plugins/VcsPlugins/vcsMercurial/BookmarksExtension/HgBookmarksInOutDialog.py --- a/Plugins/VcsPlugins/vcsMercurial/BookmarksExtension/HgBookmarksInOutDialog.py Wed Aug 31 18:44:04 2011 +0200 +++ b/Plugins/VcsPlugins/vcsMercurial/BookmarksExtension/HgBookmarksInOutDialog.py Wed Aug 31 19:28:49 2011 +0200 @@ -67,11 +67,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() @@ -114,6 +118,8 @@ if out: for line in out.splitlines(): self.__processOutputLine(line) + if self.__hgClient.wasCanceled(): + break self.__finish() else: self.process.kill()