From: Danilo M. Date: Sun, 3 May 2026 13:46:08 +0000 (+0200) Subject: feat: wire Traduci button in MissingTranslationView X-Git-Tag: v1.2~2 X-Git-Url: https://git.danix.xyz/?a=commitdiff_plain;h=d0215cc927dcc2ee7d3f177419196901c8167eee;p=publisher.git feat: wire Traduci button in MissingTranslationView Adds a Traduci button that enables on row selection and emits translate_requested, connected to _do_translate in main_window. Co-Authored-By: Claude Sonnet 4.6 --- diff --git a/ui/articles_view.py b/ui/articles_view.py index d905fde..2c52ac8 100644 --- a/ui/articles_view.py +++ b/ui/articles_view.py @@ -1,7 +1,7 @@ from __future__ import annotations from PyQt6.QtWidgets import ( - QWidget, QVBoxLayout, QTabWidget, - QListWidget, QListWidgetItem, QLabel, + QWidget, QVBoxLayout, QHBoxLayout, QTabWidget, + QListWidget, QListWidgetItem, QLabel, QPushButton, QStyledItemDelegate, QApplication, ) from PyQt6.QtCore import Qt, pyqtSignal, QSize, QRect @@ -131,10 +131,28 @@ class MissingTranslationView(QWidget): self._list = QListWidget() self._list.setItemDelegate(ArticleItemDelegate(self._list)) layout.addWidget(self._list) - self._list.itemClicked.connect(lambda item: self.article_selected.emit(item.article)) + self._list.itemClicked.connect(self._on_item_clicked) + + bar = QHBoxLayout() + self._btn_translate = QPushButton("🌐 Traduci") + self._btn_translate.setEnabled(False) + self._btn_translate.clicked.connect(self._on_translate_clicked) + bar.addStretch() + bar.addWidget(self._btn_translate) + layout.addLayout(bar) + + def _on_item_clicked(self, item: QListWidgetItem): + self.article_selected.emit(item.article) + self._btn_translate.setEnabled(True) + + def _on_translate_clicked(self): + item = self._list.currentItem() + if item: + self.translate_requested.emit(item.article) def set_articles(self, articles: list[Article]): self._list.clear() + self._btn_translate.setEnabled(False) missing = [a for a in articles if not a.has_translation] for a in missing: lang_other = "🇬🇧" if a.lang == "it" else "🇮🇹" diff --git a/ui/main_window.py b/ui/main_window.py index b29ff57..b3c657a 100644 --- a/ui/main_window.py +++ b/ui/main_window.py @@ -69,6 +69,7 @@ class MainWindow(QMainWindow): self._missing_view = MissingTranslationView() self._missing_view.article_selected.connect(self._on_article_selected) + self._missing_view.translate_requested.connect(self._do_translate) self._stack.addWidget(self._missing_view) self._page_no_translation = self._stack.count() - 1