eric6/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/HgShelveBrowserDialog.py

changeset 7370
5fb53279f2df
parent 7360
9190402e4505
child 7771
787a6b3f8c9f
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/HgShelveBrowserDialog.py	Wed Jan 08 19:13:57 2020 +0100
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/HgShelveBrowserDialog.py	Mon Jan 13 19:23:08 2020 +0100
@@ -7,22 +7,17 @@
 Module implementing Mercurial shelve browser dialog.
 """
 
-
 import os
 
-from PyQt5.QtCore import pyqtSlot, Qt, QPoint, QProcess, QTimer
+from PyQt5.QtCore import pyqtSlot, Qt, QPoint
 from PyQt5.QtGui import QCursor
 from PyQt5.QtWidgets import (
     QWidget, QDialogButtonBox, QTreeWidgetItem, QAbstractButton, QMenu,
-    QHeaderView, QApplication, QLineEdit
+    QHeaderView, QApplication
 )
 
-from E5Gui import E5MessageBox
-
 from .Ui_HgShelveBrowserDialog import Ui_HgShelveBrowserDialog
 
-from Globals import strToQByteArray
-
 
 class HgShelveBrowserDialog(QWidget, Ui_HgShelveBrowserDialog):
     """
@@ -62,14 +57,6 @@
         self.__hgClient = vcs.getClient()
         self.__resetUI()
         
-        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.__contextMenu = QMenu()
         self.__unshelveAct = self.__contextMenu.addAction(
             self.tr("Restore selected shelve"), self.__unshelve)
@@ -84,17 +71,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()
         
         self.__position = self.pos()
         
@@ -162,36 +140,12 @@
         args.append("--list")
         args.append("--stat")
         
-        if self.__hgClient:
-            self.inputGroup.setEnabled(False)
-            self.inputGroup.hide()
-            
-            out, err = self.__hgClient.runcommand(args)
-            self.buf = out.splitlines(True)
-            if err:
-                self.__showError(err)
-            self.__processBuffer()
-            self.__finish()
-        else:
-            self.process.kill()
-            
-            self.process.setWorkingDirectory(self.repodir)
-            
-            self.inputGroup.setEnabled(True)
-            self.inputGroup.show()
-            
-            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'))
+        out, err = self.__hgClient.runcommand(args)
+        self.buf = out.splitlines(True)
+        if err:
+            self.__showError(err)
+        self.__processBuffer()
+        self.__finish()
     
     def start(self, projectDir):
         """
@@ -218,37 +172,17 @@
         self.__started = True
         self.__getShelveEntries()
     
-    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)
-        """
-        self.__processBuffer()
-        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)
-        
         QApplication.restoreOverrideCursor()
         
         self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
         self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False)
         self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
         
-        self.inputGroup.setEnabled(False)
-        self.inputGroup.hide()
         self.refreshButton.setEnabled(True)
     
     def __processBuffer(self):
@@ -303,31 +237,6 @@
             self.shelveList.setCurrentItem(self.shelveList.topLevelItem(0))
             self.__started = False
     
-    def __readStdout(self):
-        """
-        Private slot to handle the readyReadStandardOutput signal.
-        
-        It reads the output of the process and inserts it into a buffer.
-        """
-        self.process.setReadChannel(QProcess.StandardOutput)
-        
-        while self.process.canReadLine():
-            line = str(self.process.readLine(), self.vcs.getEncoding(),
-                       'replace')
-            self.buf.append(line)
-    
-    def __readStderr(self):
-        """
-        Private slot to handle the readyReadStandardError 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.
@@ -349,10 +258,7 @@
             self.close()
         elif button == self.buttonBox.button(QDialogButtonBox.Cancel):
             self.cancelled = True
-            if self.__hgClient:
-                self.__hgClient.cancel()
-            else:
-                self.__finish()
+            self.__hgClient.cancel()
         elif button == self.refreshButton:
             self.on_refreshButton_clicked()
     
@@ -406,63 +312,10 @@
         self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True)
         self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
         
-        self.inputGroup.setEnabled(True)
-        self.inputGroup.show()
         self.refreshButton.setEnabled(False)
         
         self.start(self.__projectDir)
     
-    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 mercurial 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.errorGroup.show()
-        
-        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(HgShelveBrowserDialog, self).keyPressEvent(evt)
-    
     def __unshelve(self):
         """
         Private slot to restore the selected shelve of changes.

eric ide

mercurial