diff --git a/frontend/apps/filemanager/filemanagerutil.lua b/frontend/apps/filemanager/filemanagerutil.lua index bc0db4f84..643e950b1 100644 --- a/frontend/apps/filemanager/filemanagerutil.lua +++ b/frontend/apps/filemanager/filemanagerutil.lua @@ -29,7 +29,7 @@ function filemanagerutil.abbreviate(path) return path end --- Purge doc settings in sidecar directory, +-- Purge doc settings in sidecar directory function filemanagerutil.purgeSettings(file) local file_abs_path = util.realpath(file) if file_abs_path then @@ -37,4 +37,28 @@ function filemanagerutil.purgeSettings(file) end end +-- Purge doc settings except kept +function filemanagerutil.resetDocumentSettings(file) + local settings_to_keep = { + bookmarks = true, + bookmarks_sorted = true, + bookmarks_version = true, + cre_dom_version = true, + highlight = true, + highlights_imported = true, + last_page = true, + last_xpointer = true, + } + local file_abs_path = util.realpath(file) + if file_abs_path then + local doc_settings = DocSettings:open(file_abs_path) + for k in pairs(doc_settings.data) do + if not settings_to_keep[k] then + doc_settings:delSetting(k) + end + end + doc_settings:close() + end +end + return filemanagerutil diff --git a/frontend/apps/reader/modules/readermenu.lua b/frontend/apps/reader/modules/readermenu.lua index 5510dd863..d33390371 100644 --- a/frontend/apps/reader/modules/readermenu.lua +++ b/frontend/apps/reader/modules/readermenu.lua @@ -176,6 +176,23 @@ function ReaderMenu:setUpdateItemTable() end -- typeset tab + self.menu_items.reset_document_settings = { + text = _("Reset document settings to default"), + keep_menu_open = true, + callback = function() + UIManager:show(ConfirmBox:new{ + text = _("Reset current document settings to their default values?\n\nReading position, highlights and bookmarks will be kept.\nThe document will be reloaded."), + ok_text = _("Reset"), + ok_callback = function() + local current_file = self.ui.document.file + self:onTapCloseMenu() + self.ui:onClose() + require("apps/filemanager/filemanagerutil").resetDocumentSettings(current_file) + require("apps/reader/readerui"):showReader(current_file) + end, + }) + end, + } self.menu_items.page_overlap = require("ui/elements/page_overlap") -- settings tab diff --git a/frontend/ui/elements/reader_menu_order.lua b/frontend/ui/elements/reader_menu_order.lua index 597f76e50..58bff2f83 100644 --- a/frontend/ui/elements/reader_menu_order.lua +++ b/frontend/ui/elements/reader_menu_order.lua @@ -38,12 +38,13 @@ local order = { "bookmarks_settings", }, typeset = { + "reset_document_settings", + "----------------------------", "set_render_style", "style_tweaks", "----------------------------", "change_font", "typography", - "floating_punctuation", "----------------------------", "switch_zoom_mode", "----------------------------",