From d1abbbfdd85a0f0d449de48ead75bb58970ead57 Mon Sep 17 00:00:00 2001 From: hius07 <62179190+hius07@users.noreply.github.com> Date: Tue, 25 Oct 2022 06:34:23 -0400 Subject: [PATCH] Document settings submenu: add Save as default (#9643) --- frontend/apps/reader/modules/readermenu.lua | 68 ++++++++++++++++----- frontend/ui/elements/reader_menu_order.lua | 2 +- 2 files changed, 54 insertions(+), 16 deletions(-) diff --git a/frontend/apps/reader/modules/readermenu.lua b/frontend/apps/reader/modules/readermenu.lua index a2c85c138..eeb4a1861 100644 --- a/frontend/apps/reader/modules/readermenu.lua +++ b/frontend/apps/reader/modules/readermenu.lua @@ -178,23 +178,46 @@ 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) + self.menu_items.document_settings = { + text = _("Document settings"), + sub_item_table = { + { + 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, - }) - end, + }, + { + text = _("Save document settings as default"), + keep_menu_open = true, + callback = function() + UIManager:show(ConfirmBox:new{ + text = _("Save current document settings as default values?"), + ok_text = _("Save"), + ok_callback = function() + self:onTapCloseMenu() + self:saveDocumentSettingsAsDefault() + UIManager:show(require("ui/widget/notification"):new{ + text = _("Default settings updated"), + }) + end, + }) + end, + }, + }, } + self.menu_items.page_overlap = require("ui/elements/page_overlap") -- settings tab @@ -305,6 +328,21 @@ dbg:guard(ReaderMenu, 'setUpdateItemTable', end end) +function ReaderMenu:saveDocumentSettingsAsDefault() + local prefix + if self.ui.rolling then + G_reader_settings:saveSetting("cre_font", self.ui.font.font_face) + G_reader_settings:saveSetting("copt_css", self.ui.document.default_css) + G_reader_settings:saveSetting("style_tweaks", self.ui.styletweak.global_tweaks) + prefix = "copt_" + else + prefix = "kopt_" + end + for k, v in pairs(self.ui.document.configurable) do + G_reader_settings:saveSetting(prefix .. k, v) + end +end + function ReaderMenu:exitOrRestart(callback, force) if self.menu_container then self:onTapCloseMenu() end diff --git a/frontend/ui/elements/reader_menu_order.lua b/frontend/ui/elements/reader_menu_order.lua index 8b35e5401..87d17f74b 100644 --- a/frontend/ui/elements/reader_menu_order.lua +++ b/frontend/ui/elements/reader_menu_order.lua @@ -41,7 +41,7 @@ local order = { "bookmarks_settings", }, typeset = { - "reset_document_settings", + "document_settings", "----------------------------", "set_render_style", "style_tweaks",