From 3dabbd5d73f99e7c23ae752e32a13279a0800f84 Mon Sep 17 00:00:00 2001 From: hius07 <62179190+hius07@users.noreply.github.com> Date: Sun, 7 Nov 2021 20:29:53 +0200 Subject: [PATCH] Typeset menu: adds "Reset document settings to default" (#8412) --- frontend/apps/filemanager/filemanagerutil.lua | 26 ++++++++++++++++++- frontend/apps/reader/modules/readermenu.lua | 17 ++++++++++++ frontend/ui/elements/reader_menu_order.lua | 3 ++- 3 files changed, 44 insertions(+), 2 deletions(-) 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", "----------------------------",