diff options
| author | Danilo M. <danix@danix.xyz> | 2026-05-03 10:53:39 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-05-03 10:53:39 +0200 |
| commit | 7ca865ee29ca73373349e3a82f783877e4d51ae8 (patch) | |
| tree | a449b840bed27a071e1003b75cb070b92b976f05 /ui | |
| parent | 1f7edea0ec0be3ec0e464c2829e4aec0886e28d3 (diff) | |
| download | publisher-7ca865ee29ca73373349e3a82f783877e4d51ae8.tar.gz publisher-7ca865ee29ca73373349e3a82f783877e4d51ae8.zip | |
fix: stop double stopped emit, restore race, worker leak, encapsulation, git view init
Diffstat (limited to 'ui')
| -rw-r--r-- | ui/git_view.py | 3 | ||||
| -rw-r--r-- | ui/hugo_panel.py | 5 | ||||
| -rw-r--r-- | ui/main_window.py | 2 | ||||
| -rw-r--r-- | ui/translation_view.py | 4 |
4 files changed, 11 insertions, 3 deletions
diff --git a/ui/git_view.py b/ui/git_view.py index 2c759e8..b5f7371 100644 --- a/ui/git_view.py +++ b/ui/git_view.py @@ -16,6 +16,7 @@ class GitView(QWidget): self._repo_path = repo_path self._worker: GitWorker | None = None self._build_ui() + self.load_status() def _build_ui(self): layout = QVBoxLayout(self) @@ -130,5 +131,5 @@ class GitView(QWidget): 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() diff --git a/ui/hugo_panel.py b/ui/hugo_panel.py index 4305b79..fafe59c 100644 --- a/ui/hugo_panel.py +++ b/ui/hugo_panel.py @@ -66,6 +66,9 @@ class HugoPanel(QWidget): 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) diff --git a/ui/main_window.py b/ui/main_window.py index 4366da6..cc3326f 100644 --- a/ui/main_window.py +++ b/ui/main_window.py @@ -267,5 +267,5 @@ class MainWindow(QMainWindow): self._refresh_articles() def closeEvent(self, event): - self._hugo_panel._worker.stop() + self._hugo_panel.stop_server() super().closeEvent(event) diff --git a/ui/translation_view.py b/ui/translation_view.py index 70e7ac2..6ce53dd 100644 --- a/ui/translation_view.py +++ b/ui/translation_view.py @@ -71,6 +71,10 @@ class TranslationView(QWidget): 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() |
