diff --git a/src/Solver/ASolver.py b/src/Solver/ASolver.py index 78eb87d50f4d349ec0b4df8405aeee705861b583..a01b783fe154d7da43d812173c938501fdd20533 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 42d7e464c84df6410cdac17b6ac2dc29cad0dab8..fa98007c6618d8b91e5b69318680fcddf8ece731 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):