]> danix's work - publisher.git/commitdiff
feat: add keyboard shortcuts (Ctrl+Q/N/R/1/2/T)
authorDanilo M. <redacted>
Sun, 3 May 2026 13:49:56 +0000 (15:49 +0200)
committerDanilo M. <redacted>
Sun, 3 May 2026 13:49:56 +0000 (15:49 +0200)
Ctrl+Q quit, Ctrl+N new article, Ctrl+R refresh, Ctrl+1 articles view,
Ctrl+2 missing translations, Ctrl+T translations view.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
ui/main_window.py

index b3c657a58792877950d482cbd6c2749f9d1287a6..8aa2762be312916a4fb90c402e27c54295b0fe84 100644 (file)
@@ -5,6 +5,7 @@ from PyQt6.QtWidgets import (
     QLabel, QPushButton, QStackedWidget, QFrame,
 )
 from PyQt6.QtCore import Qt, QFileSystemWatcher
+from PyQt6.QtGui import QShortcut, QKeySequence
 from pathlib import Path
 from core.config import Config
 from core.article_scanner import scan_articles
@@ -38,6 +39,19 @@ class MainWindow(QMainWindow):
             self._btn_group[0].setChecked(True)
             self._stack.setCurrentIndex(self._page_articles)
         self._setup_watcher()
+        self._setup_shortcuts()
+
+    def _setup_shortcuts(self):
+        shortcuts = [
+            ("Ctrl+Q", self.close),
+            ("Ctrl+N", self._do_new_article),
+            ("Ctrl+R", self._refresh_articles),
+            ("Ctrl+1", lambda: self._stack.setCurrentIndex(self._page_articles)),
+            ("Ctrl+2", lambda: self._stack.setCurrentIndex(self._page_no_translation)),
+            ("Ctrl+T", lambda: self._stack.setCurrentIndex(self._page_translations)),
+        ]
+        for key, slot in shortcuts:
+            QShortcut(QKeySequence(key), self).activated.connect(slot)
 
     def _build_ui(self):
         central = QWidget()