summaryrefslogtreecommitdiffstats
path: root/ui/articles_view.py
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-05-03 15:46:08 +0200
committerDanilo M. <danix@danix.xyz>2026-05-03 15:46:08 +0200
commitd0215cc927dcc2ee7d3f177419196901c8167eee (patch)
tree6219da3fd1d6dce435bddc0b60bfa54f74074fb2 /ui/articles_view.py
parentab830bf7b489339d6d13ec673fd539a0023eb97d (diff)
downloadpublisher-d0215cc927dcc2ee7d3f177419196901c8167eee.tar.gz
publisher-d0215cc927dcc2ee7d3f177419196901c8167eee.zip
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 <noreply@anthropic.com>
Diffstat (limited to 'ui/articles_view.py')
-rw-r--r--ui/articles_view.py24
1 files changed, 21 insertions, 3 deletions
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 "🇮🇹"