src/eric7/Project/ProjectTranslationsBrowser.py

branch
eric7
changeset 10231
3a82c1c47b57
parent 10158
b5aadedf4214
child 10239
63fe209a1e71
--- a/src/eric7/Project/ProjectTranslationsBrowser.py	Fri Oct 06 17:57:36 2023 +0200
+++ b/src/eric7/Project/ProjectTranslationsBrowser.py	Sun Oct 08 15:01:36 2023 +0200
@@ -1021,7 +1021,11 @@
         @param proc reference to the process
         @type QProcess
         """
-        self.__readStdout(proc, "{0}: ".format(self.pylupdate))
+        out = self.__readStdout(proc, "{0}: ".format(self.pylupdate))
+        for index in range(len(self.__pylupdateProcesses)):
+            if proc is self.__pylupdateProcesses[index][0]:
+                self.__pylupdateProcesses[index][2].append(out)
+                break
 
     def __readStdoutLrelease(self, proc):
         """
@@ -1031,23 +1035,33 @@
         @param proc reference to the process
         @type QProcess
         """
-        self.__readStdout(proc, "lrelease: ")
+        out = self.__readStdout(proc, "lrelease: ")
+        for index in range(len(self.__lreleaseProcesses)):
+            if proc is self.__lreleaseProcesses[index][0]:
+                self.__lreleaseProcesses[index][1].append(out)
+                break
 
     def __readStdout(self, proc, ps):
         """
         Private method to read from a process' stdout channel.
 
-        @param proc process to read from (QProcess)
-        @param ps prompt string (string)
+        @param proc process to read from
+        @type QProcess
+        @param ps prompt string
+        @type str
+        @return string read from the process
+        @rtype str
         """
         ioEncoding = Preferences.getSystem("IOEncoding")
+        out = ""
 
         proc.setReadChannel(QProcess.ProcessChannel.StandardOutput)
         while proc and proc.canReadLine():
-            s = ps
+            out += ps
             output = str(proc.readLine(), ioEncoding, "replace")
-            s += output
-            self.appendStdout.emit(s)
+            out += output
+
+        return out
 
     def __readStderrLupdate(self, proc):
         """
@@ -1132,12 +1146,16 @@
             )
 
         for index in range(len(self.__pylupdateProcesses)):
-            if proc == self.__pylupdateProcesses[index][0]:
+            if proc is self.__pylupdateProcesses[index][0]:
                 tmpProjectFile = self.__pylupdateProcesses[index][1]
                 if tmpProjectFile:
                     with contextlib.suppress(OSError):
                         self.__tmpProjects.remove(tmpProjectFile)
                         os.remove(tmpProjectFile)
+
+                if self.__pylupdateProcesses[index][2]:
+                    self.appendStdout.emit("".join(self.__pylupdateProcesses[index][2]))
+
                 del self.__pylupdateProcesses[index]
                 break
 
@@ -1282,7 +1300,7 @@
                 procStarted = proc.waitForStarted()
                 if procStarted:
                     self.pylupdateProcRunning = True
-                    self.__pylupdateProcesses.append((proc, ""))
+                    self.__pylupdateProcesses.append((proc, "", []))
                 else:
                     with EricOverridenCursor():
                         EricMessageBox.critical(
@@ -1330,7 +1348,7 @@
                 procStarted = proc.waitForStarted()
                 if procStarted:
                     self.pylupdateProcRunning = True
-                    self.__pylupdateProcesses.append((proc, tempProjectFile))
+                    self.__pylupdateProcesses.append((proc, tempProjectFile, []))
                 else:
                     with EricOverridenCursor():
                         EricMessageBox.critical(
@@ -1431,7 +1449,10 @@
             )
 
         for index in range(len(self.__lreleaseProcesses)):
-            if proc == self.__lreleaseProcesses[index]:
+            if proc is self.__lreleaseProcesses[index][0]:
+                if self.__lreleaseProcesses[index][1]:
+                    self.appendStdout.emit("".join(self.__lreleaseProcesses[index][1]))
+
                 del self.__lreleaseProcesses[index]
                 break
         if not self.__lreleaseProcesses:
@@ -1528,7 +1549,7 @@
         procStarted = proc.waitForStarted()
         if procStarted:
             self.lreleaseProcRunning = True
-            self.__lreleaseProcesses.append(proc)
+            self.__lreleaseProcesses.append((proc, []))
         else:
             EricMessageBox.critical(
                 self,

eric ide

mercurial