eric6/Plugins/VcsPlugins/vcsMercurial/HgConflictsListDialog.py

changeset 7370
5fb53279f2df
parent 7360
9190402e4505
child 7771
787a6b3f8c9f
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgConflictsListDialog.py	Wed Jan 08 19:13:57 2020 +0100
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgConflictsListDialog.py	Mon Jan 13 19:23:08 2020 +0100
@@ -8,22 +8,19 @@
 conflicts.
 """
 
-
 import os
 
-from PyQt5.QtCore import pyqtSlot, Qt, QPoint, QProcess, QTimer
+from PyQt5.QtCore import pyqtSlot, Qt, QPoint
 from PyQt5.QtWidgets import (
-    QAbstractButton, QDialogButtonBox, QHeaderView, QTreeWidgetItem, QLineEdit,
+    QAbstractButton, QDialogButtonBox, QHeaderView, QTreeWidgetItem,
     QApplication, QWidget
 )
 
-from E5Gui import E5MessageBox
 from E5Gui.E5Application import e5App
 
 from .Ui_HgConflictsListDialog import Ui_HgConflictsListDialog
 
 import Utilities.MimeTypes
-from Globals import strToQByteArray
 
 
 class HgConflictsListDialog(QWidget, Ui_HgConflictsListDialog):
@@ -63,13 +60,6 @@
         self.project = e5App().getObject("Project")
         
         self.__hgClient = vcs.getClient()
-        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)
     
     def closeEvent(self, e):
         """
@@ -77,17 +67,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()
         
@@ -136,60 +117,27 @@
         args = self.vcs.initCommand("resolve")
         args.append('--list')
         
-        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)
-        
         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)
         
         self.__resizeColumns()
@@ -206,22 +154,10 @@
         if button == self.buttonBox.button(QDialogButtonBox.Close):
             self.close()
         elif button == self.buttonBox.button(QDialogButtonBox.Cancel):
-            if self.__hgClient:
-                self.__hgClient.cancel()
-            else:
-                self.__finish()
+            self.__hgClient.cancel()
         elif button == self.refreshButton:
             self.on_refreshButton_clicked()
     
-    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.__finish()
-    
     def __resort(self):
         """
         Private method to resort the tree.
@@ -257,20 +193,6 @@
         itm.setData(0, self.StatusRole, status)
         itm.setData(0, self.FilenameRole, self.project.getAbsolutePath(name))
     
-    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.
@@ -280,32 +202,6 @@
         status, filename = line.strip().split(None, 1)
         self.__generateItem(status, filename)
     
-    @pyqtSlot()
-    def on_refreshButton_clicked(self):
-        """
-        Private slot to refresh the log.
-        """
-        self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
-        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.__repodir)
-    
-    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.
@@ -316,55 +212,17 @@
         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)
+    @pyqtSlot()
+    def on_refreshButton_clicked(self):
         """
-        if isOn:
-            self.input.setEchoMode(QLineEdit.Password)
-        else:
-            self.input.setEchoMode(QLineEdit.Normal)
-    
-    @pyqtSlot()
-    def on_sendButton_clicked(self):
+        Private slot to refresh the log.
         """
-        Private slot to send the input to the subversion process.
-        """
-        inputTxt = self.input.text()
-        inputTxt += os.linesep
+        self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
+        self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True)
+        self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
         
-        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(HgConflictsListDialog, self).keyPressEvent(evt)
+        self.refreshButton.setEnabled(False)
+        self.start(self.__repodir)
     
     @pyqtSlot(QTreeWidgetItem, int)
     def on_conflictsList_itemDoubleClicked(self, item, column):

eric ide

mercurial