Sun, 08 Oct 2023 15:01:36 +0200
Changed output related code of the project translations browser in order to keep process output together.
--- a/src/eric7/Documentation/Source/eric7.Project.ProjectTranslationsBrowser.html Fri Oct 06 17:57:36 2023 +0200 +++ b/src/eric7/Documentation/Source/eric7.Project.ProjectTranslationsBrowser.html Sun Oct 08 15:01:36 2023 +0200 @@ -431,13 +431,25 @@ </p> <dl> -<dt><i>proc</i></dt> +<dt><i>proc</i> (QProcess)</dt> <dd> -process to read from (QProcess) +process to read from +</dd> +<dt><i>ps</i> (str)</dt> +<dd> +prompt string </dd> -<dt><i>ps</i></dt> +</dl> +<dl> +<dt>Return:</dt> <dd> -prompt string (string) +string read from the process +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str </dd> </dl> <a NAME="ProjectTranslationsBrowser.__readStdoutLrelease" ID="ProjectTranslationsBrowser.__readStdoutLrelease"></a>
--- 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,