self._repo_path = repo_path
self._worker: GitWorker | None = None
self._build_ui()
+ self.load_status()
def _build_ui(self):
layout = QVBoxLayout(self)
return
commit_hash, rel_path = item.data(256)
worker = GitWorker.restore_article(self._repo_path, commit_hash, rel_path, self)
+ worker.finished.connect(lambda ok: self.load_status() if ok else None)
self._run_worker(worker)
- self.load_status()
self._stop_btn.setEnabled(False)
self._url_btn.setVisible(False)
- def closeEvent(self, event):
+ def stop_server(self):
self._worker.stop()
+
+ def closeEvent(self, event):
+ self.stop_server()
super().closeEvent(event)
self._refresh_articles()
def closeEvent(self, event):
- self._hugo_panel._worker.stop()
+ self._hugo_panel.stop_server()
super().closeEvent(event)
layout.addWidget(self._action_bar)
def start_translation(self, article: Article):
+ if self._worker is not None:
+ self._worker.log_line.disconnect()
+ self._worker.finished.disconnect()
+ self._worker.error.disconnect()
self._article = article
self._log.clear()
self._preview.clear()
if self.is_running:
self._process.terminate()
self._process.waitForFinished(3000)
- self.stopped.emit()
+ # stopped emitted by _on_finished; don't double-emit
def _on_stdout(self):
data = self._process.readAllStandardOutput().data().decode("utf-8", errors="replace")