From f9d415642abe1862daebff4539fda98efbd41246 Mon Sep 17 00:00:00 2001 From: Frans de Jonge Date: Tue, 25 Aug 2015 10:52:43 +0200 Subject: [PATCH 1/2] Fix clear external styles not persistent in document settings References #1601 --- frontend/apps/reader/modules/readertypeset.lua | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/frontend/apps/reader/modules/readertypeset.lua b/frontend/apps/reader/modules/readertypeset.lua index 6ebb863ca..124b8e9bf 100644 --- a/frontend/apps/reader/modules/readertypeset.lua +++ b/frontend/apps/reader/modules/readertypeset.lua @@ -20,7 +20,7 @@ end function ReaderTypeset:onReadSettings(config) self.css = config:readSetting("css") - if self.css and self.css ~= "" then + if self.css then self.ui.document:setStyleSheet(self.css) else self.ui.document:setStyleSheet(self.ui.document.default_css) @@ -69,7 +69,7 @@ function ReaderTypeset:genStyleSheetMenu() { text = _("clear all external styles"), callback = function() - self:setStyleSheet(nil) + self:setStyleSheet("") end }, { @@ -96,9 +96,6 @@ function ReaderTypeset:setStyleSheet(new_css) if new_css ~= self.css then --DEBUG("setting css to ", new_css) self.css = new_css - if new_css == nil then - new_css = "" - end self.ui.document:setStyleSheet(new_css) self.ui:handleEvent(Event:new("UpdatePos")) end From f1e8710f0f116985b2c58bccb2490c70f2d49a4a Mon Sep 17 00:00:00 2001 From: Frans de Jonge Date: Tue, 25 Aug 2015 12:25:32 +0200 Subject: [PATCH 2/2] Implement persistent global style setting --- .../apps/reader/modules/readertypeset.lua | 40 ++++++++++++++----- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/frontend/apps/reader/modules/readertypeset.lua b/frontend/apps/reader/modules/readertypeset.lua index 124b8e9bf..cc3c77c2d 100644 --- a/frontend/apps/reader/modules/readertypeset.lua +++ b/frontend/apps/reader/modules/readertypeset.lua @@ -19,7 +19,7 @@ function ReaderTypeset:init() end function ReaderTypeset:onReadSettings(config) - self.css = config:readSetting("css") + self.css = config:readSetting("css") or G_reader_settings:readSetting("copt_css") if self.css then self.ui.document:setStyleSheet(self.css) else @@ -65,31 +65,37 @@ function ReaderTypeset:onToggleEmbeddedStyleSheet(toggle) end function ReaderTypeset:genStyleSheetMenu() + local style_table = {} local file_list = { { text = _("clear all external styles"), - callback = function() - self:setStyleSheet("") - end + css = "" }, { text = _("Auto"), - callback = function() - self:setStyleSheet(self.ui.document.default_css) - end + css = self.ui.document.default_css }, } for f in lfs.dir("./data") do if lfs.attributes("./data/"..f, "mode") == "file" and string.match(f, "%.css$") then table.insert(file_list, { text = f, - callback = function() - self:setStyleSheet("./data/"..f) - end + css = "./data/"..f }) end end - return file_list + for i,file in ipairs(file_list) do + table.insert(style_table, { + text = file["text"], + callback = function() + self:setStyleSheet(file["css"]) + end, + hold_callback = function() + self:makeDefaultStyleSheet(file["css"], file["text"]) + end + }) + end + return style_table end function ReaderTypeset:setStyleSheet(new_css) @@ -166,6 +172,18 @@ function ReaderTypeset:makeDefaultFloatingPunctuation() }) end +function ReaderTypeset:makeDefaultStyleSheet(css, text) + text = text or css + if css then + UIManager:show(ConfirmBox:new{ + text = T( _("Set default style to %1?"), text), + ok_callback = function() + G_reader_settings:saveSetting("copt_css", css) + end, + }) + end +end + function ReaderTypeset:onSetPageMargins(margins) local left = Screen:scaleBySize(margins[1]) local top = Screen:scaleBySize(margins[2])