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
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 "🇮🇹"