eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListDialog.py

changeset 7370
5fb53279f2df
parent 7360
9190402e4505
child 7780
41420f82c0ac
diff -r dbeeed55df08 -r 5fb53279f2df eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListDialog.py
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListDialog.py	Wed Jan 08 19:13:57 2020 +0100
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListDialog.py	Mon Jan 13 19:23:08 2020 +0100
@@ -10,17 +10,13 @@
 
 import os
 
-from PyQt5.QtCore import pyqtSlot, QProcess, Qt, QTimer, QCoreApplication
+from PyQt5.QtCore import Qt, QCoreApplication
 from PyQt5.QtWidgets import (
-    QDialog, QDialogButtonBox, QHeaderView, QTreeWidgetItem, QLineEdit
+    QDialog, QDialogButtonBox, QHeaderView, QTreeWidgetItem
 )
 
-from E5Gui import E5MessageBox
-
 from .Ui_HgQueuesListDialog import Ui_HgQueuesListDialog
 
-from Globals import strToQByteArray
-
 
 class HgQueuesListDialog(QDialog, Ui_HgQueuesListDialog):
     """
@@ -46,14 +42,6 @@
         
         self.patchesList.header().setSortIndicator(0, Qt.AscendingOrder)
         
-        if self.__hgClient:
-            self.process = None
-        else:
-            self.process = QProcess()
-            self.process.finished.connect(self.__procFinished)
-            self.process.readyReadStandardOutput.connect(self.__readStdout)
-            self.process.readyReadStandardError.connect(self.__readStderr)
-        
         self.__statusDict = {
             "A": self.tr("applied"),
             "U": self.tr("not applied"),
@@ -70,17 +58,8 @@
         
         @param e close event (QCloseEvent)
         """
-        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)
+        if self.__hgClient.isExecuting():
+            self.__hgClient.cancel()
         
         e.accept()
     
@@ -126,44 +105,21 @@
         if missing:
             args.append('--missing')
         
-        if self.__hgClient:
-            self.inputGroup.setEnabled(False)
-            self.inputGroup.hide()
-            
-            out, err = self.__hgClient.runcommand(args)
-            if err:
-                self.__showError(err)
-            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":
-                self.__getTop()
-            else:
-                self.__finish()
+        out, err = self.__hgClient.runcommand(args)
+        if err:
+            self.__showError(err)
+        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":
+            self.__getTop()
         else:
-            self.process.kill()
-            self.process.setWorkingDirectory(self.__repodir)
-            
-            self.process.start('hg', args)
-            procStarted = self.process.waitForStarted(5000)
-            if not procStarted:
-                self.inputGroup.setEnabled(False)
-                self.inputGroup.hide()
-                E5MessageBox.critical(
-                    self,
-                    self.tr('Process Generation Error'),
-                    self.tr(
-                        'The process {0} could not be started. '
-                        'Ensure, that it is in the search path.'
-                    ).format('hg'))
-            else:
-                self.inputGroup.setEnabled(True)
-                self.inputGroup.show()
+            self.__finish()
     
     def __getTop(self):
         """
@@ -173,55 +129,21 @@
         
         args = self.vcs.initCommand("qtop")
         
-        if self.__hgClient:
-            self.inputGroup.setEnabled(False)
-            self.inputGroup.hide()
-            
-            out, err = self.__hgClient.runcommand(args)
-            if err:
-                self.__showError(err)
-            if out:
-                for line in out.splitlines():
-                    self.__processOutputLine(line)
-                    if self.__hgClient.wasCanceled():
-                        break
-            self.__finish()
-        else:
-            self.process.kill()
-            self.process.setWorkingDirectory(self.__repodir)
-            
-            self.process.start('hg', args)
-            procStarted = self.process.waitForStarted(5000)
-            if not procStarted:
-                self.inputGroup.setEnabled(False)
-                self.inputGroup.hide()
-                E5MessageBox.critical(
-                    self,
-                    self.tr('Process Generation Error'),
-                    self.tr(
-                        'The process {0} could not be started. '
-                        'Ensure, that it is in the search path.'
-                    ).format('hg'))
-            else:
-                self.inputGroup.setEnabled(True)
-                self.inputGroup.show()
+        out, err = self.__hgClient.runcommand(args)
+        if err:
+            self.__showError(err)
+        if out:
+            for line in out.splitlines():
+                self.__processOutputLine(line)
+                if self.__hgClient.wasCanceled():
+                    break
+        self.__finish()
     
     def __finish(self):
         """
         Private slot called when the process finished or the user pressed
         the button.
         """
-        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)
-        
-        self.inputGroup.setEnabled(False)
-        self.inputGroup.hide()
-        
         self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
         self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False)
         self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
@@ -245,24 +167,7 @@
             self.close()
         elif button == self.buttonBox.button(QDialogButtonBox.Cancel):
             self.__mode = ""
-            if self.__hgClient:
-                self.__hgClient.cancel()
-            else:
-                self.__finish()
-    
-    def __procFinished(self, exitCode, exitStatus):
-        """
-        Private slot connected to the finished signal.
-        
-        @param exitCode exit code of the process (integer)
-        @param exitStatus exit status of the process (QProcess.ExitStatus)
-        """
-        if self.__mode == "qseries":
-            self.__getSeries(True)
-        elif self.__mode == "missing":
-            self.__getTop()
-        else:
-            self.__finish()
+            self.__hgClient.cancel()
     
     def __resort(self):
         """
@@ -334,20 +239,6 @@
                 font.setBold(True)
                 itm.setFont(column, font)
     
-    def __readStdout(self):
-        """
-        Private slot to handle the readyReadStdout signal.
-        
-        It reads the output of the process, formats it and inserts it into
-        the contents pane.
-        """
-        self.process.setReadChannel(QProcess.StandardOutput)
-        
-        while self.process.canReadLine():
-            s = str(self.process.readLine(), self.vcs.getEncoding(),
-                    'replace').strip()
-            self.__processOutputLine(s)
-    
     def __processOutputLine(self, line):
         """
         Private method to process the lines of output.
@@ -372,18 +263,6 @@
                 return
             self.__generateItem(index, status, name, summary)
     
-    def __readStderr(self):
-        """
-        Private slot to handle the readyReadStderr signal.
-        
-        It reads the error output of the process and inserts it into the
-        error pane.
-        """
-        if self.process is not None:
-            s = str(self.process.readAllStandardError(),
-                    self.vcs.getEncoding(), 'replace')
-            self.__showError(s)
-    
     def __showError(self, out):
         """
         Private slot to show some error.
@@ -393,53 +272,3 @@
         self.errorGroup.show()
         self.errors.insertPlainText(out)
         self.errors.ensureCursorVisible()
-    
-    def on_passwordCheckBox_toggled(self, isOn):
-        """
-        Private slot to handle the password checkbox toggled.
-        
-        @param isOn flag indicating the status of the check box (boolean)
-        """
-        if isOn:
-            self.input.setEchoMode(QLineEdit.Password)
-        else:
-            self.input.setEchoMode(QLineEdit.Normal)
-    
-    @pyqtSlot()
-    def on_sendButton_clicked(self):
-        """
-        Private slot to send the input to the subversion process.
-        """
-        inputTxt = self.input.text()
-        inputTxt += os.linesep
-        
-        if self.passwordCheckBox.isChecked():
-            self.errors.insertPlainText(os.linesep)
-            self.errors.ensureCursorVisible()
-        else:
-            self.errors.insertPlainText(inputTxt)
-            self.errors.ensureCursorVisible()
-        
-        self.process.write(strToQByteArray(inputTxt))
-        
-        self.passwordCheckBox.setChecked(False)
-        self.input.clear()
-    
-    def on_input_returnPressed(self):
-        """
-        Private slot to handle the press of the return key in the input field.
-        """
-        self.intercept = True
-        self.on_sendButton_clicked()
-    
-    def keyPressEvent(self, evt):
-        """
-        Protected slot to handle a key press event.
-        
-        @param evt the key press event (QKeyEvent)
-        """
-        if self.intercept:
-            self.intercept = False
-            evt.accept()
-            return
-        super(HgQueuesListDialog, self).keyPressEvent(evt)

eric ide

mercurial