Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListDialog.py

changeset 1256
885706dbb69f
parent 1255
e1d8a8a4d40c
child 1260
9488a3aceb0e
--- 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()

eric ide

mercurial