From 60a6922accaca143eeef4e044eb7035a5c0dc67e Mon Sep 17 00:00:00 2001 From: Masiha Date: Mon, 7 Sep 2026 15:16:26 +0330 Subject: [PATCH] feat(gui): shortcuts for removing list entries, closing windows and quitting --- crates/hydra-gui/assets/locale/ar.json | 3 + crates/hydra-gui/assets/locale/cs.json | 3 + crates/hydra-gui/assets/locale/da.json | 3 + crates/hydra-gui/assets/locale/de.json | 3 + crates/hydra-gui/assets/locale/el.json | 3 + crates/hydra-gui/assets/locale/en.json | 3 + crates/hydra-gui/assets/locale/es.json | 3 + crates/hydra-gui/assets/locale/fa.json | 3 + crates/hydra-gui/assets/locale/fi.json | 3 + crates/hydra-gui/assets/locale/fr.json | 3 + crates/hydra-gui/assets/locale/he.json | 3 + crates/hydra-gui/assets/locale/hi.json | 3 + crates/hydra-gui/assets/locale/hu.json | 3 + crates/hydra-gui/assets/locale/id.json | 3 + crates/hydra-gui/assets/locale/it.json | 3 + crates/hydra-gui/assets/locale/ja.json | 3 + crates/hydra-gui/assets/locale/ko.json | 3 + crates/hydra-gui/assets/locale/nl.json | 3 + crates/hydra-gui/assets/locale/pl.json | 3 + crates/hydra-gui/assets/locale/pt-BR.json | 3 + crates/hydra-gui/assets/locale/pt.json | 3 + crates/hydra-gui/assets/locale/ro.json | 3 + crates/hydra-gui/assets/locale/ru.json | 3 + crates/hydra-gui/assets/locale/sv.json | 3 + crates/hydra-gui/assets/locale/th.json | 3 + crates/hydra-gui/assets/locale/tr.json | 3 + crates/hydra-gui/assets/locale/uk.json | 3 + crates/hydra-gui/assets/locale/vi.json | 3 + crates/hydra-gui/assets/locale/zh-hant.json | 3 + crates/hydra-gui/assets/locale/zh.json | 3 + crates/hydra-gui/src/app.rs | 63 +++++++++++++++++++-- crates/hydra-gui/src/macos_menu.rs | 11 +++- crates/hydra-gui/src/main.rs | 15 ++++- crates/hydra-gui/src/model.rs | 10 +++- crates/hydra-gui/src/windows/shortcuts.rs | 17 ++---- 35 files changed, 183 insertions(+), 23 deletions(-) diff --git a/crates/hydra-gui/assets/locale/ar.json b/crates/hydra-gui/assets/locale/ar.json index 94c0d894..aee8cc79 100644 --- a/crates/hydra-gui/assets/locale/ar.json +++ b/crates/hydra-gui/assets/locale/ar.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "متصفحات Chromium تثبّت الإضافة نفسها من Chrome Web Store.", "Close": "إغلاق", "Close to system tray": "الإغلاق إلى لوحة النظام", + "Close window": "إغلاق النافذة", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "يؤدي إغلاق النافذة الرئيسية إلى إبقاء Hydra يعمل في لوحة النظام، حيث تستمر قوائم الانتظار وعمليات النقل؛ افتحه مجددًا من أيقونة لوحة النظام. إيقاف: يؤدي إغلاق النافذة إلى إنهاء Hydra.", "Combining video and audio...": "جارٍ دمج الفيديو والصوت...", "Command line parameters": "معلمات سطر الأوامر", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "كل ملف إلى الدليل وفقًا لفئة الملف", "Exceptions:": "الاستثناءات:", "Exit": "خروج", + "Exit Hydra": "إنهاء Hydra", "Exit Hydra when done": "إنهاء Hydra عند الانتهاء", "Export": "تصدير", "Extensions": "الإضافات", @@ -276,6 +278,7 @@ "Remove": "إزالة", "Remove completed downloads from the list": "إزالة التنزيلات المكتملة من القائمة", "Remove from queue": "إزالة من قائمة الانتظار", + "Remove selected downloads from the list": "إزالة التنزيلات المحددة من القائمة", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "يزيل Hydra من الـ Dock ومن Cmd-Tab أثناء عمله في شريط النظام؛ وتعود أيقونة الـ Dock وشريط القوائم ما دامت هناك نافذة مفتوحة.", "Remuxing...": "جارٍ إعادة التغليف...", "Report an Issue": "الإبلاغ عن مشكلة", diff --git a/crates/hydra-gui/assets/locale/cs.json b/crates/hydra-gui/assets/locale/cs.json index 10eb2602..ab5287df 100644 --- a/crates/hydra-gui/assets/locale/cs.json +++ b/crates/hydra-gui/assets/locale/cs.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Prohlížeče založené na Chromiu instalují úplně stejné rozšíření z Chrome Web Store.", "Close": "Zavřít", "Close to system tray": "Zavřít do systémové lišty", + "Close window": "Zavřít okno", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Zavření hlavního okna ponechá Hydru běžet v systémové liště, kde fronty a přenosy pokračují; znovu ji otevřete z ikony v liště. Vypnuto: zavření okna Hydru ukončí.", "Combining video and audio...": "Slučování videa a zvuku...", "Command line parameters": "Parametry příkazového řádku", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Každý soubor do adresáře podle kategorie souboru", "Exceptions:": "Výjimky:", "Exit": "Ukončit", + "Exit Hydra": "Ukončit Hydru", "Exit Hydra when done": "Ukončit Hydru po dokončení", "Export": "Export", "Extensions": "Rozšíření", @@ -276,6 +278,7 @@ "Remove": "Odebrat", "Remove completed downloads from the list": "Odebírat dokončená stahování ze seznamu", "Remove from queue": "Odebrat z fronty", + "Remove selected downloads from the list": "Odebrat vybraná stahování ze seznamu", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Odebere Hydru z Docku a Cmd-Tab, dokud běží v systémové liště; ikona v Docku a řádek nabídky se vrátí, jakmile je otevřené okno.", "Remuxing...": "Remuxování...", "Report an Issue": "Nahlásit problém", diff --git a/crates/hydra-gui/assets/locale/da.json b/crates/hydra-gui/assets/locale/da.json index a946816b..9cdcc0ba 100644 --- a/crates/hydra-gui/assets/locale/da.json +++ b/crates/hydra-gui/assets/locale/da.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Chromium-browsere installerer den samme udvidelse fra Chrome Web Store.", "Close": "Luk", "Close to system tray": "Luk til statusfeltet", + "Close window": "Luk vindue", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Når du lukker hovedvinduet, fortsætter Hydra med at køre i statusfeltet, hvor køer og overførsler fortsætter; åbn det igen fra ikonet i statusfeltet. Fra: luk vinduet for at afslutte Hydra.", "Combining video and audio...": "Kombinerer video og lyd...", "Command line parameters": "Kommandolinjeparametre", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Hver fil til mappen i henhold til filens kategori", "Exceptions:": "Undtagelser:", "Exit": "Afslut", + "Exit Hydra": "Afslut Hydra", "Exit Hydra when done": "Afslut Hydra ved afslutning", "Export": "Eksporter", "Extensions": "Udvidelser", @@ -276,6 +278,7 @@ "Remove": "Fjern", "Remove completed downloads from the list": "Fjern fuldførte downloads fra listen", "Remove from queue": "Fjern fra kø", + "Remove selected downloads from the list": "Fjern valgte downloads fra listen", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Fjerner Hydra fra Dock og Cmd-Tab, mens det kører i statusfeltet; Dock-ikonet og menulinjen vender tilbage, mens et vindue er åbent.", "Remuxing...": "Remuxer...", "Report an Issue": "Rapporter et problem", diff --git a/crates/hydra-gui/assets/locale/de.json b/crates/hydra-gui/assets/locale/de.json index d3677c5a..7f35932d 100644 --- a/crates/hydra-gui/assets/locale/de.json +++ b/crates/hydra-gui/assets/locale/de.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Chromium-Browser installieren dieselbe Erweiterung aus dem Chrome Web Store.", "Close": "Schließen", "Close to system tray": "In Trayleiste schließen", + "Close window": "Fenster schließen", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Beim Schließen des Hauptfensters läuft Hydra in der Trayleiste weiter, wo Warteschlangen und Übertragungen fortgesetzt werden; öffnen Sie es erneut über das Taskleistensymbol. Aus: Das Schließen des Fensters beendet Hydra.", "Combining video and audio...": "Video und Audio werden zusammengeführt...", "Command line parameters": "Befehlszeilenparameter", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Jede Datei wird entsprechend der Kategorie der Datei in das Verzeichnis verschoben", "Exceptions:": "Ausnahmen:", "Exit": "Beenden", + "Exit Hydra": "Hydra beenden", "Exit Hydra when done": "Hydra beenden, wenn Downloads abgeschlossen", "Export": "Exportieren", "Extensions": "Erweiterungen", @@ -276,6 +278,7 @@ "Remove": "Entfernen", "Remove completed downloads from the list": "Abgeschlossene Downloads aus der Liste entfernen", "Remove from queue": "Aus der Warteschlange entfernen", + "Remove selected downloads from the list": "Ausgewählte Downloads aus der Liste entfernen", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Entfernt Hydra aus dem Dock und dem Cmd-Tab, während es in der Taskleiste ausgeführt wird; Das Dock-Symbol und die Menüleiste kehren zurück, während ein Fenster geöffnet ist.", "Remuxing...": "Wird remuxt...", "Report an Issue": "Problem melden", diff --git a/crates/hydra-gui/assets/locale/el.json b/crates/hydra-gui/assets/locale/el.json index 3f494cf4..56f4de07 100644 --- a/crates/hydra-gui/assets/locale/el.json +++ b/crates/hydra-gui/assets/locale/el.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Τα προγράμματα περιήγησης που βασίζονται σε Chromium εγκαθιστούν την ίδια ακριβώς επέκταση από το Chrome Web Store.", "Close": "Κλείσιμο", "Close to system tray": "Κλείσιμο στην περιοχή ειδοποιήσεων", + "Close window": "Κλείσιμο παραθύρου", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Το κλείσιμο του κύριου παραθύρου αφήνει το Hydra να εκτελείται στην περιοχή ειδοποιήσεων, όπου οι ουρές και οι μεταφορές συνεχίζονται· ανοίξτε το ξανά από το εικονίδιο της περιοχής ειδοποιήσεων. Ανενεργό: το κλείσιμο του παραθύρου τερματίζει το Hydra.", "Combining video and audio...": "Συνδυασμός βίντεο και ήχου...", "Command line parameters": "Παράμετροι γραμμής εντολών", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Κάθε αρχείο στον κατάλογο ανάλογα με την κατηγορία του", "Exceptions:": "Εξαιρέσεις:", "Exit": "Έξοδος", + "Exit Hydra": "Έξοδος από το Hydra", "Exit Hydra when done": "Έξοδος από το Hydra όταν ολοκληρωθεί", "Export": "Εξαγωγή", "Extensions": "Επεκτάσεις", @@ -276,6 +278,7 @@ "Remove": "Αφαίρεση", "Remove completed downloads from the list": "Αφαίρεση ολοκληρωμένων λήψεων από τη λίστα", "Remove from queue": "Αφαίρεση από την ουρά", + "Remove selected downloads from the list": "Αφαίρεση επιλεγμένων λήψεων από τη λίστα", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Αφαιρεί το Hydra από το Dock και το Cmd-Tab όσο εκτελείται στην περιοχή ειδοποιήσεων· το εικονίδιο του Dock και η γραμμή μενού επανεμφανίζονται όσο είναι ανοιχτό ένα παράθυρο.", "Remuxing...": "Remuxing...", "Report an Issue": "Αναφορά προβλήματος", diff --git a/crates/hydra-gui/assets/locale/en.json b/crates/hydra-gui/assets/locale/en.json index 7801d605..b3f34a4b 100644 --- a/crates/hydra-gui/assets/locale/en.json +++ b/crates/hydra-gui/assets/locale/en.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Chromium browsers install the very same extension from the Chrome Web Store.", "Close": "Close", "Close to system tray": "Close to system tray", + "Close window": "Close window", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.", "Combining video and audio...": "Combining video and audio...", "Command line parameters": "Command line parameters", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Every file to the directory according to the category of the file", "Exceptions:": "Exceptions:", "Exit": "Exit", + "Exit Hydra": "Exit Hydra", "Exit Hydra when done": "Exit Hydra when done", "Export": "Export", "Extensions": "Extensions", @@ -276,6 +278,7 @@ "Remove": "Remove", "Remove completed downloads from the list": "Remove completed downloads from the list", "Remove from queue": "Remove from queue", + "Remove selected downloads from the list": "Remove selected downloads from the list", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.", "Remuxing...": "Remuxing...", "Report an Issue": "Report an Issue", diff --git a/crates/hydra-gui/assets/locale/es.json b/crates/hydra-gui/assets/locale/es.json index b4c56c07..c2ff818b 100644 --- a/crates/hydra-gui/assets/locale/es.json +++ b/crates/hydra-gui/assets/locale/es.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Los navegadores Chromium instalan exactamente la misma extensión desde la Chrome Web Store.", "Close": "Cerrar", "Close to system tray": "Cerrar a la bandeja del sistema", + "Close window": "Cerrar ventana", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Cerrar la ventana principal deja Hydra ejecutándose en la bandeja del sistema, donde las colas y transferencias continúan; ábrala de nuevo desde el icono de la bandeja. Desactivado: cerrar la ventana sale de Hydra.", "Combining video and audio...": "Combinando video y audio...", "Command line parameters": "Parámetros de línea de comandos", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Cada fichero en el directorio según la categoría del fichero", "Exceptions:": "Excepciones:", "Exit": "Salir", + "Exit Hydra": "Salir de Hydra", "Exit Hydra when done": "Salir de Hydra al terminar", "Export": "Exportar", "Extensions": "Extensiones", @@ -276,6 +278,7 @@ "Remove": "Quitar", "Remove completed downloads from the list": "Quitar de la lista las descargas completadas", "Remove from queue": "Quitar de la cola", + "Remove selected downloads from the list": "Quitar de la lista las descargas seleccionadas", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Quita Hydra del Dock y de Cmd-Tab mientras se ejecuta en la bandeja; el icono del Dock y la barra de menús vuelven mientras haya una ventana abierta.", "Remuxing...": "Remultiplexando...", "Report an Issue": "Informar de un problema", diff --git a/crates/hydra-gui/assets/locale/fa.json b/crates/hydra-gui/assets/locale/fa.json index de773c64..41c1b6bb 100644 --- a/crates/hydra-gui/assets/locale/fa.json +++ b/crates/hydra-gui/assets/locale/fa.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "مرورگرهای مبتنی بر Chromium همین افزونه را از Chrome Web Store نصب می‌کنند.", "Close": "بستن", "Close to system tray": "بستن به سینی سیستم", + "Close window": "بستن پنجره", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "با بستن پنجره اصلی، هیدرا در سینی سیستم به اجرا ادامه می‌دهد و صف‌ها و انتقال‌ها ادامه می‌یابند؛ دوباره از آیکون سینی بازش کنید. خاموش: بستن پنجره از هیدرا خارج می‌شود.", "Combining video and audio...": "در حال ترکیب ویدیو و صدا...", "Command line parameters": "پارامترهای خط فرمان", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "هر فایل در پوشه مربوط به دسته همان فایل", "Exceptions:": "استثناها:", "Exit": "خروج", + "Exit Hydra": "خروج از هیدرا", "Exit Hydra when done": "خروج از هیدرا پس از پایان", "Export": "برون‌برد", "Extensions": "افزونه‌ها", @@ -276,6 +278,7 @@ "Remove": "حذف", "Remove completed downloads from the list": "حذف دانلودهای کامل‌شده از فهرست", "Remove from queue": "حذف از صف", + "Remove selected downloads from the list": "حذف دانلودهای انتخاب‌شده از فهرست", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "هایدرا تا زمانی که در سینی اجرا می‌شود از Dock و Cmd-Tab حذف می‌شود؛ با باز بودن هر پنجره، آیکون Dock و نوار منو بازمی‌گردند.", "Remuxing...": "در حال remux کردن...", "Report an Issue": "گزارش مشکل", diff --git a/crates/hydra-gui/assets/locale/fi.json b/crates/hydra-gui/assets/locale/fi.json index 9cbff205..b300bb27 100644 --- a/crates/hydra-gui/assets/locale/fi.json +++ b/crates/hydra-gui/assets/locale/fi.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Chromium-pohjaiset selaimet asentavat saman laajennuksen Chrome-verkkokaupasta.", "Close": "Sulje", "Close to system tray": "Sulje ilmaisinalueelle", + "Close window": "Sulje ikkuna", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Pääikkunan sulkeminen jättää Hydran toimimaan ilmaisinalueella, jossa jonot ja siirrot jatkuvat; avaa se uudelleen ilmaisinalueen kuvakkeesta. Pois päältä: ikkunan sulkeminen sulkee Hydran.", "Combining video and audio...": "Yhdistetään videota ja ääntä...", "Command line parameters": "Komentorivin parametrit", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Jokainen tiedosto kansioon tiedoston kategorian mukaan", "Exceptions:": "Poikkeukset:", "Exit": "Poistu", + "Exit Hydra": "Poistu Hydrasta", "Exit Hydra when done": "Poistu Hydrasta valmistuttua", "Export": "Vie", "Extensions": "Laajennukset", @@ -276,6 +278,7 @@ "Remove": "Poista", "Remove completed downloads from the list": "Poista valmiit lataukset luettelosta", "Remove from queue": "Poista jonosta", + "Remove selected downloads from the list": "Poista valitut lataukset luettelosta", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Poistaa Hydran Dockista ja Cmd-Tab-vaihtimesta sen toimiessa ilmaisinalueella; Dock-kuvake ja valikkorivi palaavat, kun ikkuna on auki.", "Remuxing...": "Uudelleenkoteloidaan...", "Report an Issue": "Ilmoita ongelmasta", diff --git a/crates/hydra-gui/assets/locale/fr.json b/crates/hydra-gui/assets/locale/fr.json index a2449502..602a9395 100644 --- a/crates/hydra-gui/assets/locale/fr.json +++ b/crates/hydra-gui/assets/locale/fr.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Les navigateurs Chromium installent exactement la même extension depuis le Chrome Web Store.", "Close": "Fermer", "Close to system tray": "Fermer dans la zone de notification", + "Close window": "Fermer la fenêtre", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Fermer la fenêtre principale laisse Hydra s'exécuter dans la zone de notification, où les files d'attente et les transferts continuent ; rouvrez-la depuis l'icône de la zone de notification. Désactivé : fermer la fenêtre quitte Hydra.", "Combining video and audio...": "Fusion de la vidéo et de l'audio...", "Command line parameters": "Paramètres de ligne de commande", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Chaque fichier dans le répertoire selon sa catégorie", "Exceptions:": "Exceptions :", "Exit": "Quitter", + "Exit Hydra": "Quitter Hydra", "Exit Hydra when done": "Quitter Hydra une fois terminé", "Export": "Exporter", "Extensions": "Extensions", @@ -276,6 +278,7 @@ "Remove": "Retirer", "Remove completed downloads from the list": "Retirer les téléchargements terminés de la liste", "Remove from queue": "Retirer de la file", + "Remove selected downloads from the list": "Retirer les téléchargements sélectionnés de la liste", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Retire Hydra du Dock et de Cmd-Tab tant qu'il tourne dans la zone de notification ; l'icône du Dock et la barre de menus reviennent tant qu'une fenêtre est ouverte.", "Remuxing...": "Remuxage...", "Report an Issue": "Signaler un problème", diff --git a/crates/hydra-gui/assets/locale/he.json b/crates/hydra-gui/assets/locale/he.json index dd4ef0f7..7b92dc2d 100644 --- a/crates/hydra-gui/assets/locale/he.json +++ b/crates/hydra-gui/assets/locale/he.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "דפדפני Chromium מתקינים בדיוק את אותה הרחבה מחנות האינטרנט של Chrome.", "Close": "סגור", "Close to system tray": "סגור למגש המערכת (Tray)", + "Close window": "סגירת חלון", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "סגירת החלון הראשי משאירה את Hydra פועלת במגש המערכת (Tray), שם התורים וההעברות ממשיכים; פתח אותה שוב מסמל המגש. כבוי: סגירת החלון תסגור את Hydra.", "Combining video and audio...": "משלב וידאו ואודיו...", "Command line parameters": "פרמטרים של שורת הפקודה", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "כל קובץ לתיקייה בהתאם לקטגוריה שלו", "Exceptions:": "חריגים:", "Exit": "יציאה", + "Exit Hydra": "יציאה מ-Hydra", "Exit Hydra when done": "צא מ-Hydra בסיום", "Export": "ייצוא", "Extensions": "הרחבות", @@ -276,6 +278,7 @@ "Remove": "הסר", "Remove completed downloads from the list": "הסרת הורדות שהושלמו מהרשימה", "Remove from queue": "הסר מהתור", + "Remove selected downloads from the list": "הסרת ההורדות שנבחרו מהרשימה", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "מסיר את Hydra מה-Dock ומ-Cmd-Tab בזמן שהיא רצה במגש המערכת; סמל ה-Dock ושורת התפריטים יחזרו כאשר חלון פתוח.", "Remuxing...": "אורז מחדש את הקובץ...", "Report an Issue": "דיווח על תקלה", diff --git a/crates/hydra-gui/assets/locale/hi.json b/crates/hydra-gui/assets/locale/hi.json index a210dfa8..60dee090 100644 --- a/crates/hydra-gui/assets/locale/hi.json +++ b/crates/hydra-gui/assets/locale/hi.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Chromium ब्राउज़र वही एक्सटेंशन Chrome Web Store से इंस्टॉल करते हैं।", "Close": "बंद करें", "Close to system tray": "सिस्टम ट्रे में बंद करें", + "Close window": "विंडो बंद करें", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "मुख्य विंडो बंद करने पर Hydra ट्रे में चलता रहता है, जहाँ कतारें और स्थानांतरण जारी रहते हैं; इसे ट्रे आइकन से फिर से खोलें। बंद: विंडो बंद करने पर Hydra से बाहर निकल जाता है।", "Combining video and audio...": "वीडियो और ऑडियो संयोजित किए जा रहे हैं...", "Command line parameters": "कमांड लाइन पैरामीटर", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "प्रत्येक फ़ाइल को उसकी श्रेणी के अनुसार निर्देशिका में", "Exceptions:": "अपवाद:", "Exit": "बाहर निकलें", + "Exit Hydra": "Hydra से बाहर निकलें", "Exit Hydra when done": "पूर्ण होने पर Hydra से बाहर निकलें", "Export": "निर्यात करें", "Extensions": "एक्सटेंशन", @@ -276,6 +278,7 @@ "Remove": "हटाएँ", "Remove completed downloads from the list": "पूर्ण डाउनलोड को सूची से हटाएँ", "Remove from queue": "कतार से हटाएँ", + "Remove selected downloads from the list": "चयनित डाउनलोड को सूची से हटाएँ", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Hydra को Dock और Cmd-Tab से हटाता है जब यह ट्रे में चल रहा हो; विंडो खुली होने पर डॉक आइकन और मेनू बार वापस आ जाते हैं।", "Remuxing...": "रीमक्सिंग हो रही है...", "Report an Issue": "समस्या की रिपोर्ट करें", diff --git a/crates/hydra-gui/assets/locale/hu.json b/crates/hydra-gui/assets/locale/hu.json index c8ce2f62..b81b8c47 100644 --- a/crates/hydra-gui/assets/locale/hu.json +++ b/crates/hydra-gui/assets/locale/hu.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "A Chromium alapú böngészők ugyanazt a bővítményt telepítik a Chrome Web Store-ból.", "Close": "Bezárás", "Close to system tray": "Bezárás a tálcára", + "Close window": "Ablak bezárása", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "A főablak bezárása után a Hydra a tálcán fut tovább, ahol a várólisták és átvitelek folytatódnak; nyissa meg újra a tálcaikonról. Kikapcsolva: az ablak bezárása kilépteti a Hydrát.", "Combining video and audio...": "Videó és hang egyesítése...", "Command line parameters": "Parancssori paraméterek", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Minden fájl a fájl kategóriájának megfelelő könyvtárba kerüljön", "Exceptions:": "Kivételek:", "Exit": "Kilépés", + "Exit Hydra": "Kilépés a Hydrából", "Exit Hydra when done": "Kilépés a Hydrából, ha kész", "Export": "Exportálás", "Extensions": "Bővítmények", @@ -276,6 +278,7 @@ "Remove": "Eltávolítás", "Remove completed downloads from the list": "Befejezett letöltések eltávolítása a listáról", "Remove from queue": "Eltávolítás a várólistáról", + "Remove selected downloads from the list": "Kijelölt letöltések eltávolítása a listáról", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Eltávolítja a Hydrát a Dokkból és a Cmd-Tab váltóból, amíg a tálcán fut; a Dokk ikon és a menüsáv visszatér, amíg egy ablak nyitva van.", "Remuxing...": "Remuxolás...", "Report an Issue": "Hiba jelentése", diff --git a/crates/hydra-gui/assets/locale/id.json b/crates/hydra-gui/assets/locale/id.json index 3738c583..566453b0 100644 --- a/crates/hydra-gui/assets/locale/id.json +++ b/crates/hydra-gui/assets/locale/id.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Peramban berbasis Chromium memasang ekstensi yang sama persis dari Chrome Web Store.", "Close": "Tutup", "Close to system tray": "Tutup ke system tray", + "Close window": "Tutup jendela", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Menutup jendela utama membiarkan Hydra tetap berjalan di tray, di mana antrean dan transfer terus berlangsung; buka lagi dari ikon tray. Nonaktif: menutup jendela akan keluar dari Hydra.", "Combining video and audio...": "Menggabungkan video dan audio...", "Command line parameters": "Parameter baris perintah", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Setiap berkas ke direktori sesuai kategori berkas", "Exceptions:": "Pengecualian:", "Exit": "Keluar", + "Exit Hydra": "Keluar dari Hydra", "Exit Hydra when done": "Keluar dari Hydra setelah selesai", "Export": "Ekspor", "Extensions": "Ekstensi", @@ -276,6 +278,7 @@ "Remove": "Hapus", "Remove completed downloads from the list": "Hapus unduhan selesai dari daftar", "Remove from queue": "Hapus dari antrean", + "Remove selected downloads from the list": "Hapus unduhan terpilih dari daftar", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Menghapus Hydra dari Dock dan Cmd-Tab selama berjalan di tray; ikon Dock dan menu bar akan muncul kembali saat jendela terbuka.", "Remuxing...": "Melakukan remux...", "Report an Issue": "Laporkan Masalah", diff --git a/crates/hydra-gui/assets/locale/it.json b/crates/hydra-gui/assets/locale/it.json index fd9f740a..4c433bd9 100644 --- a/crates/hydra-gui/assets/locale/it.json +++ b/crates/hydra-gui/assets/locale/it.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "I browser basati su Chromium installano la stessa identica estensione dal Chrome Web Store.", "Close": "Chiudi", "Close to system tray": "Chiudi nella barra delle notifiche", + "Close window": "Chiudi finestra", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Chiudendo la finestra principale, Hydra continua a essere in esecuzione nella barra, dove code e trasferimenti proseguono; riaprila dall'icona nella barra. Disattivato: chiudendo la finestra si esce da Hydra.", "Combining video and audio...": "Unione di video e audio in corso...", "Command line parameters": "Parametri della riga di comando", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Ogni file nella cartella corrispondente alla propria categoria", "Exceptions:": "Eccezioni:", "Exit": "Esci", + "Exit Hydra": "Esci da Hydra", "Exit Hydra when done": "Esci da Hydra al termine", "Export": "Esporta", "Extensions": "Estensioni", @@ -276,6 +278,7 @@ "Remove": "Rimuovi", "Remove completed downloads from the list": "Rimuovi i download completati dall'elenco", "Remove from queue": "Rimuovi dalla coda", + "Remove selected downloads from the list": "Rimuovi i download selezionati dall'elenco", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Rimuove Hydra dal Dock e da Cmd-Tab mentre è in esecuzione nella barra; l'icona del Dock e la barra dei menu ritornano quando una finestra è aperta.", "Remuxing...": "Remuxing in corso...", "Report an Issue": "Segnala un problema", diff --git a/crates/hydra-gui/assets/locale/ja.json b/crates/hydra-gui/assets/locale/ja.json index eedabfb1..c19eee22 100644 --- a/crates/hydra-gui/assets/locale/ja.json +++ b/crates/hydra-gui/assets/locale/ja.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Chromium 系ブラウザーは Chrome ウェブストアから同じ拡張機能をインストールできます。", "Close": "閉じる", "Close to system tray": "システムトレイに最小化して閉じる", + "Close window": "ウィンドウを閉じる", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "メインウィンドウを閉じても Hydra はトレイで動作し続け、キューと転送は継続します。トレイアイコンから再度開けます。オフにすると、ウィンドウを閉じたときに Hydra を終了します。", "Combining video and audio...": "映像と音声を結合中...", "Command line parameters": "コマンドライン引数", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "ファイルのカテゴリに応じたディレクトリに保存", "Exceptions:": "例外:", "Exit": "終了", + "Exit Hydra": "Hydra を終了", "Exit Hydra when done": "完了時に Hydra を終了", "Export": "エクスポート", "Extensions": "拡張機能", @@ -276,6 +278,7 @@ "Remove": "削除", "Remove completed downloads from the list": "完了したダウンロードをリストから削除する", "Remove from queue": "キューから削除", + "Remove selected downloads from the list": "選択したダウンロードをリストから削除", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "トレイで動作している間は Hydra を Dock と Cmd-Tab から取り除きます。ウィンドウが開いている間は Dock アイコンとメニューバーが戻ります。", "Remuxing...": "リマックス中...", "Report an Issue": "問題を報告", diff --git a/crates/hydra-gui/assets/locale/ko.json b/crates/hydra-gui/assets/locale/ko.json index a64edb4c..75e0c42b 100644 --- a/crates/hydra-gui/assets/locale/ko.json +++ b/crates/hydra-gui/assets/locale/ko.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Chromium 계열 브라우저는 Chrome 웹 스토어에서 동일한 확장 프로그램을 설치합니다.", "Close": "닫기", "Close to system tray": "시스템 트레이로 닫기", + "Close window": "창 닫기", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "기본 창을 닫아도 Hydra는 시스템 트레이에서 계속 실행되며, 대기열과 전송 작업도 계속 진행됩니다. 시스템 트레이 아이콘을 클릭하여 다시 창을 열 수 있습니다. 종료: 창을 닫으면 Hydra가 종료됩니다.", "Combining video and audio...": "동영상과 오디오 결합...", "Command line parameters": "명령줄 매개변수", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "파일 카테고리에 따라 디렉터리로 저장", "Exceptions:": "예외 목록:", "Exit": "종료", + "Exit Hydra": "Hydra 종료", "Exit Hydra when done": "완료 시 Hydra 종료", "Export": "내보내기", "Extensions": "확장 프로그램", @@ -276,6 +278,7 @@ "Remove": "제거", "Remove completed downloads from the list": "완료된 다운로드를 목록에서 제거", "Remove from queue": "대기열에서 제거", + "Remove selected downloads from the list": "선택한 다운로드를 목록에서 제거", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "트레이에서 실행되는 동안 Hydra를 Dock과 Cmd-Tab에서 제거합니다. 창이 열려 있는 동안에는 Dock 아이콘과 메뉴 막대가 다시 표시됩니다.", "Remuxing...": "리먹싱 중...", "Report an Issue": "문제 신고", diff --git a/crates/hydra-gui/assets/locale/nl.json b/crates/hydra-gui/assets/locale/nl.json index 0dc67deb..91ab21a6 100644 --- a/crates/hydra-gui/assets/locale/nl.json +++ b/crates/hydra-gui/assets/locale/nl.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Chromium-browsers installeren exact dezelfde extensie uit de Chrome Web Store.", "Close": "Sluiten", "Close to system tray": "Naar systeemvak sluiten", + "Close window": "Venster sluiten", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Het sluiten van het hoofdvenster laat Hydra actief in het systeemvak, waar wachtrijen en overdrachten doorgaan; open het opnieuw via het systeemvakpictogram. Uit: het sluiten van het venster sluit Hydra af.", "Combining video and audio...": "Video en audio samenvoegen...", "Command line parameters": "Opdrachtregelparameters", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Elk bestand naar de map volgens de categorie van het bestand", "Exceptions:": "Uitzonderingen:", "Exit": "Afsluiten", + "Exit Hydra": "Hydra afsluiten", "Exit Hydra when done": "Hydra afsluiten wanneer voltooid", "Export": "Exporteren", "Extensions": "Extensies", @@ -276,6 +278,7 @@ "Remove": "Verwijderen", "Remove completed downloads from the list": "Voltooide downloads uit de lijst verwijderen", "Remove from queue": "Uit wachtrij verwijderen", + "Remove selected downloads from the list": "Geselecteerde downloads uit de lijst verwijderen", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Verwijdert Hydra uit het Dock en Cmd-Tab zolang het in het systeemvak draait; het Dock-icoon en de menubalk keren terug zolang er een venster open is.", "Remuxing...": "Remuxen...", "Report an Issue": "Probleem melden", diff --git a/crates/hydra-gui/assets/locale/pl.json b/crates/hydra-gui/assets/locale/pl.json index 547405b4..0fc36856 100644 --- a/crates/hydra-gui/assets/locale/pl.json +++ b/crates/hydra-gui/assets/locale/pl.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Przeglądarki oparte na Chromium instalują to samo rozszerzenie z Chrome Web Store.", "Close": "Zamknij", "Close to system tray": "Zamykaj do zasobnika systemowego", + "Close window": "Zamknij okno", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Zamknięcie głównego okna pozostawia Hydrę działającą w zasobniku, gdzie kolejki i transfery są kontynuowane; otwórz je ponownie z ikony zasobnika. Wyłączone: zamknięcie okna kończy działanie Hydry.", "Combining video and audio...": "Łączenie wideo i audio...", "Command line parameters": "Parametry wiersza poleceń", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Każdy plik do katalogu zgodnego z kategorią pliku", "Exceptions:": "Wyjątki:", "Exit": "Zakończ", + "Exit Hydra": "Zakończ Hydrę", "Exit Hydra when done": "Zakończ działanie Hydry po ukończeniu", "Export": "Eksportuj", "Extensions": "Rozszerzenia", @@ -276,6 +278,7 @@ "Remove": "Usuń", "Remove completed downloads from the list": "Usuwaj ukończone pobierania z listy", "Remove from queue": "Usuń z kolejki", + "Remove selected downloads from the list": "Usuń zaznaczone pobierania z listy", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Usuwa Hydrę z Docka i Cmd-Tab, gdy działa w zasobniku; ikona Docka i pasek menu powracają, gdy otwarte jest okno.", "Remuxing...": "Remuksowanie...", "Report an Issue": "Zgłoś problem", diff --git a/crates/hydra-gui/assets/locale/pt-BR.json b/crates/hydra-gui/assets/locale/pt-BR.json index 78ba83e9..19a4cb09 100644 --- a/crates/hydra-gui/assets/locale/pt-BR.json +++ b/crates/hydra-gui/assets/locale/pt-BR.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Navegadores baseados em Chromium instalam a mesma extensão da Chrome Web Store.", "Close": "Fechar", "Close to system tray": "Fechar para a bandeja do sistema", + "Close window": "Fechar janela", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Fechar a janela principal deixa o Hydra em execução na bandeja, onde filas e transferências continuam; abra-o novamente pelo ícone da bandeja. Desativado: fechar a janela encerra o Hydra.", "Combining video and audio...": "Combinando vídeo e áudio...", "Command line parameters": "Parâmetros de linha de comando", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Cada arquivo no diretório de acordo com sua categoria", "Exceptions:": "Exceções:", "Exit": "Sair", + "Exit Hydra": "Sair do Hydra", "Exit Hydra when done": "Sair do Hydra ao concluir", "Export": "Exportar", "Extensions": "Extensões", @@ -276,6 +278,7 @@ "Remove": "Remover", "Remove completed downloads from the list": "Remover downloads concluídos da lista", "Remove from queue": "Remover da fila", + "Remove selected downloads from the list": "Remover downloads selecionados da lista", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Remove o Hydra do Dock e do Cmd-Tab enquanto ele roda na bandeja; o ícone do Dock e a barra de menu retornam enquanto uma janela está aberta.", "Remuxing...": "Remuxando...", "Report an Issue": "Relatar um problema", diff --git a/crates/hydra-gui/assets/locale/pt.json b/crates/hydra-gui/assets/locale/pt.json index 0dac3e36..a0b0421c 100644 --- a/crates/hydra-gui/assets/locale/pt.json +++ b/crates/hydra-gui/assets/locale/pt.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Os navegadores baseados em Chromium instalam a mesma extensão a partir da Chrome Web Store.", "Close": "Fechar", "Close to system tray": "Fechar para a área de notificação", + "Close window": "Fechar janela", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Fechar a janela principal mantém o Hydra em execução na área de notificação, onde as filas e transferências continuam; abra-a novamente a partir do ícone na área de notificação. Desativado: fechar a janela sai do Hydra.", "Combining video and audio...": "A combinar vídeo e áudio...", "Command line parameters": "Parâmetros da linha de comandos", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Cada ficheiro para a pasta de acordo com a sua categoria", "Exceptions:": "Exceções:", "Exit": "Sair", + "Exit Hydra": "Sair do Hydra", "Exit Hydra when done": "Sair do Hydra ao concluir", "Export": "Exportar", "Extensions": "Extensões", @@ -276,6 +278,7 @@ "Remove": "Remover", "Remove completed downloads from the list": "Remover da lista as transferências concluídas", "Remove from queue": "Remover da fila", + "Remove selected downloads from the list": "Remover da lista as transferências selecionadas", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Remove o Hydra do Dock e do Cmd-Tab enquanto corre na área de notificação; o ícone no Dock e a barra de menus regressam enquanto uma janela estiver aberta.", "Remuxing...": "A remuxar...", "Report an Issue": "Comunicar um Problema", diff --git a/crates/hydra-gui/assets/locale/ro.json b/crates/hydra-gui/assets/locale/ro.json index a879b789..1c0016aa 100644 --- a/crates/hydra-gui/assets/locale/ro.json +++ b/crates/hydra-gui/assets/locale/ro.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Browserele bazate pe Chromium instalează aceeași extensie din Chrome Web Store.", "Close": "Închide", "Close to system tray": "Închide în bara de sistem", + "Close window": "Închide fereastra", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Închiderea ferestrei principale lasă Hydra să ruleze în bara de sistem, unde cozile și transferurile continuă; deschide-o din nou din pictograma din bara de sistem. Dezactivat: închiderea ferestrei iese din Hydra.", "Combining video and audio...": "Se combină video și audio...", "Command line parameters": "Parametri de linie de comandă", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Fiecare fișier în folderul corespunzător categoriei sale", "Exceptions:": "Excepții:", "Exit": "Ieșire", + "Exit Hydra": "Ieși din Hydra", "Exit Hydra when done": "Ieși din Hydra la finalizare", "Export": "Exportă", "Extensions": "Extensii", @@ -276,6 +278,7 @@ "Remove": "Elimină", "Remove completed downloads from the list": "Elimină descărcările finalizate din listă", "Remove from queue": "Elimină din coadă", + "Remove selected downloads from the list": "Elimină descărcările selectate din listă", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Elimină Hydra din Dock și Cmd-Tab cât timp rulează în bara de sistem; pictograma din Dock și bara de meniu revin cât timp o fereastră este deschisă.", "Remuxing...": "Se remuxează...", "Report an Issue": "Raportează o problemă", diff --git a/crates/hydra-gui/assets/locale/ru.json b/crates/hydra-gui/assets/locale/ru.json index e35bfc67..bed525f2 100644 --- a/crates/hydra-gui/assets/locale/ru.json +++ b/crates/hydra-gui/assets/locale/ru.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Браузеры на Chromium устанавливают то же самое расширение из Chrome Web Store.", "Close": "Закрыть", "Close to system tray": "Закрывать в системный трей", + "Close window": "Закрыть окно", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Закрытие главного окна оставляет Hydra работать в трее, где очереди и передачи продолжаются; откройте его снова через значок в трее. Выкл: закрытие окна завершает работу Hydra.", "Combining video and audio...": "Объединение видео и аудио...", "Command line parameters": "Параметры командной строки", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Каждый файл в папку согласно его категории", "Exceptions:": "Исключения:", "Exit": "Выход", + "Exit Hydra": "Выйти из Hydra", "Exit Hydra when done": "Закрыть Hydra по завершении", "Export": "Экспорт", "Extensions": "Расширения", @@ -276,6 +278,7 @@ "Remove": "Удалить", "Remove completed downloads from the list": "Удалять завершённые загрузки из списка", "Remove from queue": "Удалить из очереди", + "Remove selected downloads from the list": "Удалить выбранные загрузки из списка", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Убирает Hydra из Dock и Cmd-Tab, пока приложение работает в трее; значок Dock и строка меню возвращаются, пока открыто окно.", "Remuxing...": "Ремуксинг...", "Report an Issue": "Сообщить о проблеме", diff --git a/crates/hydra-gui/assets/locale/sv.json b/crates/hydra-gui/assets/locale/sv.json index 642cf886..9a3d9d93 100644 --- a/crates/hydra-gui/assets/locale/sv.json +++ b/crates/hydra-gui/assets/locale/sv.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Chromium-baserade webbläsare installerar exakt samma tillägg från Chrome Web Store.", "Close": "Stäng", "Close to system tray": "Stäng till systemfältet", + "Close window": "Stäng fönster", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Att stänga huvudfönstret låter Hydra fortsätta köras i systemfältet, där köer och överföringar fortsätter. Öppna det igen från ikonen i systemfältet. Av: att stänga fönstret avslutar Hydra.", "Combining video and audio...": "Kombinerar video och ljud...", "Command line parameters": "Kommandoradsparametrar", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Varje fil till katalogen enligt filens kategori", "Exceptions:": "Undantag:", "Exit": "Avsluta", + "Exit Hydra": "Avsluta Hydra", "Exit Hydra when done": "Avsluta Hydra när klart", "Export": "Exportera", "Extensions": "Tillägg", @@ -276,6 +278,7 @@ "Remove": "Ta bort", "Remove completed downloads from the list": "Ta bort slutförda nedladdningar från listan", "Remove from queue": "Ta bort från kö", + "Remove selected downloads from the list": "Ta bort markerade nedladdningar från listan", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Tar bort Hydra från Dock och Cmd-Tab medan det körs i systemfältet. Dock-ikonen och menyraden återkommer medan ett fönster är öppet.", "Remuxing...": "Remuxar...", "Report an Issue": "Rapportera ett problem", diff --git a/crates/hydra-gui/assets/locale/th.json b/crates/hydra-gui/assets/locale/th.json index 19c3fb18..56563023 100644 --- a/crates/hydra-gui/assets/locale/th.json +++ b/crates/hydra-gui/assets/locale/th.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "เบราว์เซอร์ที่ใช้ Chromium ติดตั้งส่วนขยายเดียวกันจาก Chrome Web Store", "Close": "ปิด", "Close to system tray": "ปิดไปยังถาดระบบ", + "Close window": "ปิดหน้าต่าง", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "การปิดหน้าต่างหลักจะทำให้ Hydra ยังคงทำงานอยู่ในถาดระบบ โดยคิวและการถ่ายโอนยังคงดำเนินต่อไป เปิดใหม่ได้จากไอคอนถาดระบบ หากปิดตัวเลือกนี้ การปิดหน้าต่างจะออกจาก Hydra ทันที", "Combining video and audio...": "กำลังรวมวิดีโอและเสียง...", "Command line parameters": "พารามิเตอร์บรรทัดคำสั่ง", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "ไฟล์แต่ละไฟล์ไปยังไดเรกทอรีตามหมวดหมู่ของไฟล์นั้น", "Exceptions:": "ข้อยกเว้น:", "Exit": "ออก", + "Exit Hydra": "ออกจาก Hydra", "Exit Hydra when done": "ออกจาก Hydra เมื่อเสร็จสิ้น", "Export": "ส่งออก", "Extensions": "ส่วนขยาย", @@ -276,6 +278,7 @@ "Remove": "ลบออก", "Remove completed downloads from the list": "ลบรายการดาวน์โหลดที่เสร็จสิ้นออกจากรายการ", "Remove from queue": "ลบออกจากคิว", + "Remove selected downloads from the list": "ลบรายการดาวน์โหลดที่เลือกออกจากรายการ", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "ลบ Hydra ออกจาก Dock และ Cmd-Tab ขณะทำงานอยู่ในถาดระบบ ไอคอน Dock และแถบเมนูจะกลับมาเมื่อมีหน้าต่างเปิดอยู่", "Remuxing...": "กำลังรีมักซ์...", "Report an Issue": "รายงานปัญหา", diff --git a/crates/hydra-gui/assets/locale/tr.json b/crates/hydra-gui/assets/locale/tr.json index 3bf90104..2af0ae5f 100644 --- a/crates/hydra-gui/assets/locale/tr.json +++ b/crates/hydra-gui/assets/locale/tr.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Chromium tarayıcıları, Chrome Web Mağazası'ndan tamamen aynı eklentiyi yükler.", "Close": "Kapat", "Close to system tray": "Sistem tepsisine kapat", + "Close window": "Pencereyi kapat", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Ana pencereyi kapatmak Hydra'yı tepside çalışır durumda bırakır; kuyruklar ve aktarımlar devam eder, tekrar açmak için tepsi simgesine tıklayın. Kapalı: pencereyi kapatmak Hydra'dan çıkar.", "Combining video and audio...": "Video ve ses birleştiriliyor...", "Command line parameters": "Komut satırı parametreleri", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Her dosya kendi kategorisine göre ilgili dizine", "Exceptions:": "İstisnalar:", "Exit": "Çıkış", + "Exit Hydra": "Hydra'dan çık", "Exit Hydra when done": "Tamamlandığında Hydra'dan çık", "Export": "Dışa Aktar", "Extensions": "Eklentiler", @@ -276,6 +278,7 @@ "Remove": "Kaldır", "Remove completed downloads from the list": "Tamamlanan indirmeleri listeden kaldır", "Remove from queue": "Kuyruktan kaldır", + "Remove selected downloads from the list": "Seçili indirmeleri listeden kaldır", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Hydra tepside çalışırken onu Dock'tan ve Cmd-Tab'dan kaldırır; bir pencere açıkken Dock simgesi ve menü çubuğu geri döner.", "Remuxing...": "Yeniden paketleniyor...", "Report an Issue": "Sorun Bildir", diff --git a/crates/hydra-gui/assets/locale/uk.json b/crates/hydra-gui/assets/locale/uk.json index c5fec548..cc39b1a6 100644 --- a/crates/hydra-gui/assets/locale/uk.json +++ b/crates/hydra-gui/assets/locale/uk.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Браузери на основі Chromium встановлюють те саме розширення з Chrome Web Store.", "Close": "Закрити", "Close to system tray": "Закривати в системний трей", + "Close window": "Закрити вікно", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Закриття головного вікна залишає Hydra працювати в треї, де черги та передавання тривають далі; відкрийте вікно знову зі значка в треї. Вимкнено: закриття вікна завершує роботу Hydra.", "Combining video and audio...": "Об'єднання відео та аудіо...", "Command line parameters": "Параметри командного рядка", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Кожен файл у каталог відповідно до категорії файлу", "Exceptions:": "Винятки:", "Exit": "Вийти", + "Exit Hydra": "Вийти з Hydra", "Exit Hydra when done": "Вийти з Hydra після завершення", "Export": "Експортувати", "Extensions": "Розширення", @@ -276,6 +278,7 @@ "Remove": "Вилучити", "Remove completed downloads from the list": "Вилучати завершені завантаження зі списку", "Remove from queue": "Вилучити з черги", + "Remove selected downloads from the list": "Вилучити вибрані завантаження зі списку", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Прибирає Hydra з Dock і Cmd-Tab, поки програма працює в треї; значок Dock і рядок меню повертаються, коли відкрите вікно.", "Remuxing...": "Ремультиплексування...", "Report an Issue": "Повідомити про проблему", diff --git a/crates/hydra-gui/assets/locale/vi.json b/crates/hydra-gui/assets/locale/vi.json index c0f5f12a..9ff7f4df 100644 --- a/crates/hydra-gui/assets/locale/vi.json +++ b/crates/hydra-gui/assets/locale/vi.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Các trình duyệt dựa trên Chromium cài cùng một tiện ích mở rộng từ Chrome Web Store.", "Close": "Đóng", "Close to system tray": "Đóng vào khay hệ thống", + "Close window": "Đóng cửa sổ", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "Đóng cửa sổ chính sẽ để Hydra tiếp tục chạy trong khay hệ thống, nơi các hàng đợi và lượt truyền vẫn tiếp diễn; hãy mở lại từ biểu tượng khay. Tắt: đóng cửa sổ sẽ thoát Hydra.", "Combining video and audio...": "Đang kết hợp video và âm thanh...", "Command line parameters": "Tham số dòng lệnh", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "Mỗi tệp vào thư mục theo danh mục của tệp", "Exceptions:": "Ngoại lệ:", "Exit": "Thoát", + "Exit Hydra": "Thoát Hydra", "Exit Hydra when done": "Thoát Hydra khi hoàn tất", "Export": "Xuất", "Extensions": "Tiện ích mở rộng", @@ -276,6 +278,7 @@ "Remove": "Xóa bỏ", "Remove completed downloads from the list": "Xóa các tải xuống đã hoàn tất khỏi danh sách", "Remove from queue": "Xóa khỏi hàng đợi", + "Remove selected downloads from the list": "Xóa các tải xuống đã chọn khỏi danh sách", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Loại Hydra khỏi Dock và Cmd-Tab khi ứng dụng chạy trong khay hệ thống; biểu tượng Dock và thanh menu sẽ trở lại khi có cửa sổ đang mở.", "Remuxing...": "Đang remux...", "Report an Issue": "Báo cáo sự cố", diff --git a/crates/hydra-gui/assets/locale/zh-hant.json b/crates/hydra-gui/assets/locale/zh-hant.json index a1674bb0..5f977d49 100644 --- a/crates/hydra-gui/assets/locale/zh-hant.json +++ b/crates/hydra-gui/assets/locale/zh-hant.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Chromium 系列瀏覽器可從 Chrome 線上應用程式商店安裝完全相同的擴充功能。", "Close": "關閉", "Close to system tray": "關閉至系統匣", + "Close window": "關閉視窗", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "關閉主視窗後,Hydra 會繼續在系統匣中運行,佇列和傳輸也會繼續進行;請從系統匣圖示重新開啟視窗。關閉此選項:關閉視窗將會結束 Hydra。", "Combining video and audio...": "正在合併影片與音訊...", "Command line parameters": "命令列參數", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "每個檔案依照其分類放入對應的目錄。", "Exceptions:": "例外:", "Exit": "退出", + "Exit Hydra": "退出 Hydra", "Exit Hydra when done": "完成後退出 Hydra", "Export": "匯出", "Extensions": "擴充功能", @@ -276,6 +278,7 @@ "Remove": "移除", "Remove completed downloads from the list": "從清單中移除已完成的下載", "Remove from queue": "從佇列中移除", + "Remove selected downloads from the list": "從清單中移除選取的下載", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "在系統匣執行時,將 Hydra 從 Dock 和 Cmd-Tab 中移除;視窗開啟時,Dock 圖示和功能表列將會恢復顯示。", "Remuxing...": "正在重新封裝...", "Report an Issue": "回報問題", diff --git a/crates/hydra-gui/assets/locale/zh.json b/crates/hydra-gui/assets/locale/zh.json index 8fe048f0..9ad420a4 100644 --- a/crates/hydra-gui/assets/locale/zh.json +++ b/crates/hydra-gui/assets/locale/zh.json @@ -56,6 +56,7 @@ "Chromium browsers install the very same extension from the Chrome Web Store.": "Chromium 系浏览器可从 Chrome 网上应用店安装同一个扩展程序。", "Close": "关闭", "Close to system tray": "关闭到系统托盘", + "Close window": "关闭窗口", "Closing the main window leaves Hydra running in the tray, where queues and transfers carry on; open it again from the tray icon. Off: closing the window exits Hydra.": "关闭主窗口后 Hydra 会继续在托盘中运行,队列和传输不受影响;可从托盘图标重新打开。关闭此选项:关闭窗口将退出 Hydra。", "Combining video and audio...": "正在合并视频和音频...", "Command line parameters": "命令行参数", @@ -113,6 +114,7 @@ "Every file to the directory according to the category of the file": "每个文件按其分类存入对应目录", "Exceptions:": "例外:", "Exit": "退出", + "Exit Hydra": "退出 Hydra", "Exit Hydra when done": "完成后退出 Hydra", "Export": "导出", "Extensions": "扩展程序", @@ -276,6 +278,7 @@ "Remove": "移除", "Remove completed downloads from the list": "从列表中移除已完成的下载", "Remove from queue": "从队列中移除", + "Remove selected downloads from the list": "从列表中移除选中的下载", "Removes Hydra from the Dock and Cmd-Tab while it runs in the tray; the Dock icon and menu bar return while a window is open.": "Hydra 在托盘运行时从 Dock 和 Cmd-Tab 中移除;窗口打开时 Dock 图标和菜单栏会恢复显示。", "Remuxing...": "正在重新封装...", "Report an Issue": "报告问题", diff --git a/crates/hydra-gui/src/app.rs b/crates/hydra-gui/src/app.rs index 20606705..6a600a1e 100644 --- a/crates/hydra-gui/src/app.rs +++ b/crates/hydra-gui/src/app.rs @@ -907,7 +907,9 @@ pub enum Message { /// Drives the virtual row window in `ui::table`. TableScrolled(f32, f32, f32), Mods(iced::keyboard::Modifiers), - RawKey(iced::keyboard::Key, iced::keyboard::Modifiers), + /// A key press no widget consumed, with the window it was aimed at — + /// `close_window` has to know which one to shut. + RawKey(iced::keyboard::Key, iced::keyboard::Modifiers, window::Id), SelectAll, RowEnter(DlId), RowExit(DlId), @@ -1742,7 +1744,7 @@ impl App { WinKind::Scheduler => (950.0, 660.0), WinKind::Batch => (950.0, 700.0), WinKind::About => (460.0, 225.0), - WinKind::Shortcuts => (520.0, 460.0), + WinKind::Shortcuts => (520.0, 520.0), WinKind::Confirm => (500.0, 200.0), WinKind::Permissions => (640.0, 410.0), WinKind::Update => (560.0, 520.0), @@ -3594,7 +3596,7 @@ impl App { self.mods = m; Task::none() } - Message::RawKey(key, mods) => { + Message::RawKey(key, mods, win) => { // Escape backs out of an inline rename, leaving the queue // under its old name — the draft is only committed on Enter. if key == iced::keyboard::Key::Named(iced::keyboard::key::Named::Escape) @@ -3603,13 +3605,17 @@ impl App { self.renaming_queue = None; return Task::none(); } + // Alt+F4 is the Windows quit convention, not a preference, so + // it is not in the editable table. Windows sends the window a + // close request of its own as well; quitting outright is what + // the shortcut means, close-to-tray or not. + if key == iced::keyboard::Key::Named(iced::keyboard::key::Named::F4) && mods.alt() { + return self.update(Message::Menu(MenuAction::Exit)); + } let combo = combo_string(&key, mods); let Some(combo) = combo else { return Task::none(); }; - if combo == "cmd+a" { - return self.update(Message::SelectAll); - } let action = self .cfg .shortcuts @@ -3668,6 +3674,14 @@ impl App { None => Task::none(), } } + Some("select_all") => self.update(Message::SelectAll), + // Same path as the toolbar's Delete and the Downloads > + // Remove menu entry: it asks before anything is dropped. + Some("remove_selected") => self.update(Message::ToolbarDelete), + // Exactly what the window's own close button does, which + // is what Cmd+W means everywhere else. + Some("close_window") => self.update(Message::WindowCloseRequested(win)), + Some("quit") => self.update(Message::Menu(MenuAction::Exit)), _ => Task::none(), } } @@ -6792,6 +6806,43 @@ pub fn combo_string(key: &iced::keyboard::Key, mods: iced::keyboard::Modifiers) #[cfg(test)] mod tests { + /// A combo the table ships but a key press can never produce is an + /// action nobody can reach, and two actions on one combo means the + /// alphabetically later id silently never fires. + #[test] + fn default_shortcuts_are_unique_and_match_what_a_key_press_produces() { + use iced::keyboard::{Key, Modifiers}; + + let command = if cfg!(target_os = "macos") { + Modifiers::LOGO + } else { + Modifiers::CTRL + }; + let mut seen = std::collections::BTreeSet::new(); + for (id, combo, _) in crate::model::SHORTCUT_ACTIONS { + assert!( + seen.insert(combo), + "'{combo}' is bound twice, once by '{id}'" + ); + let mut parts: Vec<&str> = combo.split('+').collect(); + let base = parts.pop().expect("split always yields the base key"); + let mut mods = Modifiers::empty(); + for part in parts { + mods |= match part { + "cmd" => command, + "shift" => Modifiers::SHIFT, + "alt" => Modifiers::ALT, + other => panic!("'{id}' uses an unknown modifier '{other}'"), + }; + } + assert_eq!( + super::combo_string(&Key::Character(base.into()), mods).as_deref(), + Some(combo), + "'{id}' ships a combo no key press normalizes to" + ); + } + } + #[test] fn save_as_splits_folder_and_name() { use super::split_save_as as split; diff --git a/crates/hydra-gui/src/macos_menu.rs b/crates/hydra-gui/src/macos_menu.rs index 31fefc67..ea91dfe5 100644 --- a/crates/hydra-gui/src/macos_menu.rs +++ b/crates/hydra-gui/src/macos_menu.rs @@ -48,6 +48,12 @@ fn item(label: &str, action: MenuAction) -> MenuItem { MenuItem::with_id(action.id(), tr(label), true, None) } +/// Same, with a key equivalent shown next to the label. Used where AppKit +/// would otherwise claim the combo for itself — see the Quit item. +fn item_accel(label: &str, action: MenuAction, accel: &str) -> MenuItem { + MenuItem::with_id(action.id(), tr(label), true, accel.parse().ok()) +} + fn check(label: &str, action: MenuAction, on: bool) -> CheckMenuItem { CheckMenuItem::with_id(action.id(), tr(label), true, on, None) } @@ -77,7 +83,10 @@ pub fn reinstall(state: &MenuState, queues: &[String], languages: &[String]) { &PredefinedMenuItem::hide_others(None), &PredefinedMenuItem::show_all(None), &PredefinedMenuItem::separator(), - &PredefinedMenuItem::quit(None), + // Not `PredefinedMenuItem::quit`: that one calls AppKit's terminate + // straight away, so the download list and config never get their + // final flush. Our own Exit saves first, then exits. + &item_accel("Exit Hydra", MenuAction::Exit, "Cmd+Q"), ]); let _ = menu.append(&app_m); diff --git a/crates/hydra-gui/src/main.rs b/crates/hydra-gui/src/main.rs index 43e7e061..62a6719a 100644 --- a/crates/hydra-gui/src/main.rs +++ b/crates/hydra-gui/src/main.rs @@ -403,10 +403,21 @@ fn subscription(app: &App) -> Subscription { } // Shortcuts fire only on events no widget consumed, so typing // Cmd+A inside a text field still selects text, not downloads. + // Every editable combo carries the command modifier; Escape (back + // out of an inline rename) and Alt+F4 (quit on Windows) are the + // two fixed conventions that do not, and nothing else is passed + // on — an unconsumed keystroke otherwise costs a full repaint. iced::Event::Keyboard(iced::keyboard::Event::KeyPressed { key, modifiers, .. }) - if status == iced::event::Status::Ignored && modifiers.command() => + if status == iced::event::Status::Ignored + && (modifiers.command() + || matches!( + key, + iced::keyboard::Key::Named( + iced::keyboard::key::Named::Escape | iced::keyboard::key::Named::F4 + ) + )) => { - Some(Message::RawKey(key, modifiers)) + Some(Message::RawKey(key, modifiers, window)) } iced::Event::Mouse(iced::mouse::Event::ButtonReleased(iced::mouse::Button::Left)) => { Some(Message::MouseUp) diff --git a/crates/hydra-gui/src/model.rs b/crates/hydra-gui/src/model.rs index 9035e33e..4c0faf80 100644 --- a/crates/hydra-gui/src/model.rs +++ b/crates/hydra-gui/src/model.rs @@ -820,7 +820,7 @@ pub fn app_dir() -> PathBuf { /// User configuration: everything the Options/Scheduler dialogs edit. /// Stored as `config.toml`; a missing or unparsable file yields defaults. /// (action id, default combo, English label) — the shortcut table. -pub const SHORTCUT_ACTIONS: [(&str, &str, &str); 8] = [ +pub const SHORTCUT_ACTIONS: [(&str, &str, &str); 12] = [ ("add_url", "cmd+n", "Add new download"), ( "clipboard_add", @@ -833,6 +833,14 @@ pub const SHORTCUT_ACTIONS: [(&str, &str, &str); 8] = [ ("stop_last", "cmd+s", "Stop last active download"), ("start_main_queue", "cmd+shift+r", "Start main queue"), ("stop_main_queue", "cmd+shift+s", "Stop main queue"), + ("select_all", "cmd+a", "Select all downloads"), + ( + "remove_selected", + "cmd+alt+r", + "Remove selected downloads from the list", + ), + ("close_window", "cmd+w", "Close window"), + ("quit", "cmd+q", "Exit Hydra"), ]; #[derive(Clone, Debug, Default, Serialize, Deserialize)] diff --git a/crates/hydra-gui/src/windows/shortcuts.rs b/crates/hydra-gui/src/windows/shortcuts.rs index 17d0d0ba..3efe4264 100644 --- a/crates/hydra-gui/src/windows/shortcuts.rs +++ b/crates/hydra-gui/src/windows/shortcuts.rs @@ -9,7 +9,7 @@ use crate::app::{App, El, Message, WinKind}; use crate::model::SHORTCUT_ACTIONS; use crate::windows::dlg_btn_primary; use crate::{i18n::tr, theme}; -use iced::widget::{column, container, row, text, text_input}; +use iced::widget::{column, container, row, scrollable, text, text_input}; use iced::Length; pub fn view(app: &App) -> El<'_> { @@ -35,20 +35,11 @@ pub fn view(app: &App) -> El<'_> { .align_y(iced::Alignment::Center), ); } - list = list.push( - row![ - text(tr("Select all downloads")) - .size(theme::FONT_SIZE) - .width(Length::Fill), - text("cmd+a").size(theme::FONT_SIZE).width(150.0), - ] - .spacing(10), - ); - container( column![ - list, - iced::widget::space::vertical(), + // The table grows with every new action, and View > Font scales + // every row: scroll rather than push OK off the bottom. + scrollable(list).height(Length::Fill), row![ iced::widget::space::horizontal(), dlg_btn_primary(