diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages.properties index 547a9473..f3bfb6ad 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages.properties @@ -329,6 +329,7 @@ jfx.gui.menu.file.close=Close jfx.gui.menu.file.sign=Sign jfx.gui.menu.file.recentFiles=Recent Files jfx.gui.menu.file.recentFiles.empty=No recent files +jfx.gui.menu.file.recentFiles.clear=Clear list jfx.gui.menu.file.saveAs=Save Output As... jfx.gui.menu.file.resetSettings=Reset Settings… jfx.gui.menu.file.preferences=Preferences… diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_cs.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_cs.properties index 75e05a74..6b34eb70 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_cs.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_cs.properties @@ -326,6 +326,7 @@ jfx.gui.menu.file.close=Zavřít jfx.gui.menu.file.sign=Podepsat jfx.gui.menu.file.recentFiles=Nedávné soubory jfx.gui.menu.file.recentFiles.empty=Žádné nedávné soubory +jfx.gui.menu.file.recentFiles.clear=Vymazat seznam jfx.gui.menu.file.resetSettings=Resetovat nastavení… jfx.gui.menu.file.exit=Ukončit jfx.gui.menu.file.saveAs=Uložit výstup jako... diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_de.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_de.properties index 47397b81..f5db3aae 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_de.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_de.properties @@ -322,6 +322,7 @@ jfx.gui.menu.file.close=Schließen jfx.gui.menu.file.sign=Signieren jfx.gui.menu.file.recentFiles=Zuletzt geöffnet jfx.gui.menu.file.recentFiles.empty=Keine zuletzt geöffneten Dateien +jfx.gui.menu.file.recentFiles.clear=Liste leeren jfx.gui.menu.file.saveAs=Ausgabe speichern unter... jfx.gui.menu.file.resetSettings=Einstellungen zurücksetzen … jfx.gui.menu.file.exit=Beenden diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_el.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_el.properties index d917bd95..0e532cd7 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_el.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_el.properties @@ -309,6 +309,7 @@ jfx.gui.menu.file.close=Κλείσιμο jfx.gui.menu.file.sign=Υπογραφή jfx.gui.menu.file.recentFiles=Πρόσφατα αρχεία jfx.gui.menu.file.recentFiles.empty=Δεν υπάρχουν πρόσφατα αρχεία +jfx.gui.menu.file.recentFiles.clear=Εκκαθάριση λίστας jfx.gui.menu.file.resetSettings=Επαναφορά ρυθμίσεων… jfx.gui.menu.file.exit=Έξοδος jfx.gui.menu.view=Προβολή diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_es.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_es.properties index 61d0836e..586efe64 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_es.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_es.properties @@ -326,6 +326,7 @@ jfx.gui.menu.file.close=Cerrar jfx.gui.menu.file.sign=Firmar jfx.gui.menu.file.recentFiles=Archivos recientes jfx.gui.menu.file.recentFiles.empty=No hay archivos recientes +jfx.gui.menu.file.recentFiles.clear=Borrar lista jfx.gui.menu.file.resetSettings=Restablecer ajustes… jfx.gui.menu.file.exit=Salir jfx.gui.menu.file.saveAs=Guardar salida como... diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_fr.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_fr.properties index 04414882..7d14ebfc 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_fr.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_fr.properties @@ -304,6 +304,7 @@ jfx.gui.menu.file.close=Fermer jfx.gui.menu.file.sign=Signer jfx.gui.menu.file.recentFiles=Fichiers récents jfx.gui.menu.file.recentFiles.empty=Aucun fichier récent +jfx.gui.menu.file.recentFiles.clear=Effacer la liste jfx.gui.menu.file.resetSettings=Réinitialiser les paramètres… jfx.gui.menu.file.exit=Quitter jfx.gui.menu.file.saveAs=Enregistrer la sortie sous... diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_hr.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_hr.properties index 7e29cd54..70cef6fc 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_hr.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_hr.properties @@ -324,6 +324,7 @@ jfx.gui.menu.file.close=Zatvori jfx.gui.menu.file.sign=Potpiši jfx.gui.menu.file.recentFiles=Nedavne datoteke jfx.gui.menu.file.recentFiles.empty=Nema nedavnih datoteka +jfx.gui.menu.file.recentFiles.clear=Očisti popis jfx.gui.menu.file.resetSettings=Resetiraj postavke … jfx.gui.menu.file.exit=Izlaz jfx.gui.menu.file.saveAs=Spremi izlaz kao... diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_hu.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_hu.properties index 5512e7ac..94996085 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_hu.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_hu.properties @@ -17,6 +17,7 @@ jfx.gui.menu.file.close=Bezárás jfx.gui.menu.file.sign=Aláírás jfx.gui.menu.file.recentFiles=Legutóbbi fájlok jfx.gui.menu.file.recentFiles.empty=Nincsenek legutóbbi fájlok +jfx.gui.menu.file.recentFiles.clear=Lista törlése jfx.gui.menu.file.resetSettings=Beállítások visszaállítása… jfx.gui.menu.file.exit=Kilépés jfx.gui.menu.file.saveAs=Kimenet mentése másként... diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_hy.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_hy.properties index cbee221a..e1b3e7df 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_hy.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_hy.properties @@ -24,6 +24,7 @@ jfx.gui.menu.file.close=Փակել jfx.gui.menu.file.sign=Ստորագրել jfx.gui.menu.file.recentFiles=Վերջին ֆայլեր jfx.gui.menu.file.recentFiles.empty=Վերջին ֆայլեր չկան +jfx.gui.menu.file.recentFiles.clear=Մաքրել ցանկը jfx.gui.menu.file.resetSettings=Վերականգնել կարգավորումները… jfx.gui.menu.file.exit=Ելք jfx.gui.menu.view=Տեսք diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_it.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_it.properties index fd408320..7e2aee30 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_it.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_it.properties @@ -57,6 +57,7 @@ jfx.gui.menu.file.close=Chiudi jfx.gui.menu.file.sign=Firma jfx.gui.menu.file.recentFiles=File recenti jfx.gui.menu.file.recentFiles.empty=Nessun file recente +jfx.gui.menu.file.recentFiles.clear=Svuota elenco jfx.gui.menu.file.resetSettings=Reimposta impostazioni… jfx.gui.menu.file.exit=Esci jfx.gui.menu.file.saveAs=Salva output con nome... diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_ja.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_ja.properties index af5bfca5..65f3daa8 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_ja.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_ja.properties @@ -98,6 +98,7 @@ jfx.gui.menu.file.close=閉じる jfx.gui.menu.file.sign=署名 jfx.gui.menu.file.recentFiles=最近のファイル jfx.gui.menu.file.recentFiles.empty=最近のファイルはありません +jfx.gui.menu.file.recentFiles.clear=リストをクリア jfx.gui.menu.file.resetSettings=設定をリセット… jfx.gui.menu.file.exit=終了 jfx.gui.menu.view=表示 diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_nb-NO.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_nb-NO.properties index 79c34fba..885cb100 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_nb-NO.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_nb-NO.properties @@ -161,6 +161,7 @@ jfx.gui.menu.file.close=Lukk jfx.gui.menu.file.sign=Signer jfx.gui.menu.file.recentFiles=Nylige filer jfx.gui.menu.file.recentFiles.empty=Ingen nylige filer +jfx.gui.menu.file.recentFiles.clear=Tøm listen jfx.gui.menu.file.resetSettings=Tilbakestill innstillinger… jfx.gui.menu.file.exit=Avslutt jfx.gui.menu.view=Visning diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_pl.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_pl.properties index 0e014d9b..6016ccad 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_pl.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_pl.properties @@ -141,6 +141,7 @@ jfx.gui.menu.file.close=Zamknij jfx.gui.menu.file.sign=Podpisz jfx.gui.menu.file.recentFiles=Ostatnie pliki jfx.gui.menu.file.recentFiles.empty=Brak ostatnich plików +jfx.gui.menu.file.recentFiles.clear=Wyczyść listę jfx.gui.menu.file.resetSettings=Zresetuj ustawienia… jfx.gui.menu.file.exit=Wyjście jfx.gui.menu.file.saveAs=Zapisz dane wyjściowe jako... diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_pt.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_pt.properties index 9e46c079..d010474b 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_pt.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_pt.properties @@ -326,6 +326,7 @@ jfx.gui.menu.file.close=Fechar jfx.gui.menu.file.sign=Assinar jfx.gui.menu.file.recentFiles=Ficheiros recentes jfx.gui.menu.file.recentFiles.empty=Sem ficheiros recentes +jfx.gui.menu.file.recentFiles.clear=Limpar lista jfx.gui.menu.file.resetSettings=Repor configurações… jfx.gui.menu.file.exit=Sair jfx.gui.menu.file.saveAs=Salvar saída como... diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_ru.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_ru.properties index 9cbc8241..5df16b1e 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_ru.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_ru.properties @@ -27,6 +27,7 @@ jfx.gui.menu.file.close=Закрыть jfx.gui.menu.file.sign=Подписать jfx.gui.menu.file.recentFiles=Недавние файлы jfx.gui.menu.file.recentFiles.empty=Нет недавних файлов +jfx.gui.menu.file.recentFiles.clear=Очистить список jfx.gui.menu.file.resetSettings=Сбросить настройки… jfx.gui.menu.file.exit=Выход jfx.gui.menu.view=Вид diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_sk.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_sk.properties index 790fc8ec..53b3becb 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_sk.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_sk.properties @@ -326,6 +326,7 @@ jfx.gui.menu.file.close=Zatvoriť jfx.gui.menu.file.sign=Podpísať jfx.gui.menu.file.recentFiles=Nedávne súbory jfx.gui.menu.file.recentFiles.empty=Žiadne nedávne súbory +jfx.gui.menu.file.recentFiles.clear=Vymazať zoznam jfx.gui.menu.file.resetSettings=Resetovať nastavenia… jfx.gui.menu.file.exit=Ukončiť jfx.gui.menu.file.saveAs=Uložiť výstup ako... diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_ta.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_ta.properties index b1637dfe..dbc67712 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_ta.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_ta.properties @@ -325,6 +325,7 @@ jfx.gui.menu.file.close=மூடு jfx.gui.menu.file.sign=கையொப்பமிடு jfx.gui.menu.file.recentFiles=இத்தீபட்ட கோப்புகள் jfx.gui.menu.file.recentFiles.empty=இத்தீபட்ட கோப்புகள் இல்லை +jfx.gui.menu.file.recentFiles.clear=பட்டியலை அழி jfx.gui.menu.file.resetSettings=அமைப்புகளை மீட்டமை… jfx.gui.menu.file.exit=வெளியேறு jfx.gui.menu.view=காட்சி diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_zh_CN.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_zh_CN.properties index 54e30195..7281019d 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_zh_CN.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_zh_CN.properties @@ -270,6 +270,7 @@ jfx.gui.menu.file.close=关闭 jfx.gui.menu.file.sign=签名 jfx.gui.menu.file.recentFiles=最近文件 jfx.gui.menu.file.recentFiles.empty=没有最近文件 +jfx.gui.menu.file.recentFiles.clear=清除列表 jfx.gui.menu.file.resetSettings=初始化配置… jfx.gui.menu.file.exit=退出 jfx.gui.menu.view=视图 diff --git a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_zh_TW.properties b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_zh_TW.properties index dc9782ab..09e7265a 100644 --- a/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_zh_TW.properties +++ b/engines/api/src/main/resources/net/sf/jsignpdf/translations/messages_zh_TW.properties @@ -270,6 +270,7 @@ jfx.gui.menu.file.close=關閉 jfx.gui.menu.file.sign=簽署 jfx.gui.menu.file.recentFiles=最近檔案 jfx.gui.menu.file.recentFiles.empty=沒有最近檔案 +jfx.gui.menu.file.recentFiles.clear=清除清單 jfx.gui.menu.file.resetSettings=初始化設定… jfx.gui.menu.file.exit=結束 jfx.gui.menu.view=檢視 diff --git a/jsignpdf/src/main/java/net/sf/jsignpdf/fx/util/RecentFilesManager.java b/jsignpdf/src/main/java/net/sf/jsignpdf/fx/util/RecentFilesManager.java index c84509c8..87f1ad96 100644 --- a/jsignpdf/src/main/java/net/sf/jsignpdf/fx/util/RecentFilesManager.java +++ b/jsignpdf/src/main/java/net/sf/jsignpdf/fx/util/RecentFilesManager.java @@ -3,6 +3,8 @@ import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; import net.sf.jsignpdf.Constants; import net.sf.jsignpdf.utils.PropertyProvider; @@ -13,6 +15,7 @@ */ public class RecentFilesManager { + private static final Logger LOGGER = Logger.getLogger(RecentFilesManager.class.getName()); private static final int MAX_RECENT = 10; private final PropertyProvider props = PropertyStoreFactory.getInstance().mainConfig(); @@ -38,6 +41,17 @@ public List getRecentFiles() { return result; } + public void clear() { + for (int i = 0; i < MAX_RECENT; i++) { + props.removeProperty(Constants.PROPERTY_RECENT_FILE_PREFIX + i); + } + try { + props.save(); + } catch (Exception e) { + LOGGER.log(Level.WARNING, "Could not persist cleared recent files list", e); + } + } + private void saveFiles(List files) { for (int i = 0; i < MAX_RECENT; i++) { if (i < files.size()) { diff --git a/jsignpdf/src/main/java/net/sf/jsignpdf/fx/view/MainWindowController.java b/jsignpdf/src/main/java/net/sf/jsignpdf/fx/view/MainWindowController.java index c8c22738..452d842f 100644 --- a/jsignpdf/src/main/java/net/sf/jsignpdf/fx/view/MainWindowController.java +++ b/jsignpdf/src/main/java/net/sf/jsignpdf/fx/view/MainWindowController.java @@ -30,6 +30,7 @@ import javafx.scene.control.Tooltip; import javafx.scene.control.ProgressBar; import javafx.scene.control.ScrollPane; +import javafx.scene.control.SeparatorMenuItem; import javafx.scene.control.SplitPane; import javafx.scene.control.TextField; import javafx.scene.control.ToggleButton; @@ -711,6 +712,13 @@ private void refreshRecentFilesMenu() { item.setOnAction(e -> openDocument(new File(path))); menuRecentFiles.getItems().add(item); } + menuRecentFiles.getItems().add(new SeparatorMenuItem()); + MenuItem clear = new MenuItem(RES.get("jfx.gui.menu.file.recentFiles.clear")); + clear.setOnAction(e -> { + recentFilesManager.clear(); + refreshRecentFilesMenu(); + }); + menuRecentFiles.getItems().add(clear); } }