From 527a16f81852ed3ea6c2fb53e6a7f2cb7563f3d8 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Mon, 19 Jun 2023 17:11:08 +0200 Subject: [PATCH] Solver: Get process finished event. --- src/Solver/ASolver.py | 5 +++++ src/View/RunSolver/Window.py | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Solver/ASolver.py b/src/Solver/ASolver.py index 78eb87d5..a01b783f 100644 --- a/src/Solver/ASolver.py +++ b/src/Solver/ASolver.py @@ -135,6 +135,7 @@ class AbstractSolver(object): exe, args, ) self._process.readyRead.connect(self._data_ready) + self._process.finished.connect(self._finished) return True @@ -149,6 +150,10 @@ class AbstractSolver(object): if self._output is not None: self._output.put(s) + def _finished(self, exit_code, exit_status): + if self._output is not None: + self._output.put(exit_code) + def run(self, process, output_queue): self._process = process self._output = output_queue diff --git a/src/View/RunSolver/Window.py b/src/View/RunSolver/Window.py index 42d7e464..fa98007c 100644 --- a/src/View/RunSolver/Window.py +++ b/src/View/RunSolver/Window.py @@ -111,13 +111,16 @@ class SolverLogWindow(ASubMainWindow, ListedSubWindow): self._alarm.timeout.connect(self.update) def _log(self, msg): - msg = msg.rsplit('\n')[0] - self.find(QTextEdit, "textEdit").append(msg) + if type(msg) == str: + msg = msg.rsplit('\n')[0] + self.find(QTextEdit, "textEdit").append(msg) + elif type(msg) == int: + self.find(QTextEdit, "textEdit")\ + .append(f" *** Solver finished with code {msg}") def update(self): while self._output.qsize() != 0: s = self._output.get() - print(s) self._log(s) def start(self): -- GitLab