summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ui/articles_view.py24
-rw-r--r--ui/main_window.py1
2 files changed, 22 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 "🇮🇹"
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