Implement persistent global style setting

pull/1602/head
Frans de Jonge 9 years ago
parent f9d415642a
commit f1e8710f0f

@ -19,7 +19,7 @@ function ReaderTypeset:init()
end end
function ReaderTypeset:onReadSettings(config) 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 if self.css then
self.ui.document:setStyleSheet(self.css) self.ui.document:setStyleSheet(self.css)
else else
@ -65,31 +65,37 @@ function ReaderTypeset:onToggleEmbeddedStyleSheet(toggle)
end end
function ReaderTypeset:genStyleSheetMenu() function ReaderTypeset:genStyleSheetMenu()
local style_table = {}
local file_list = { local file_list = {
{ {
text = _("clear all external styles"), text = _("clear all external styles"),
callback = function() css = ""
self:setStyleSheet("")
end
}, },
{ {
text = _("Auto"), text = _("Auto"),
callback = function() css = self.ui.document.default_css
self:setStyleSheet(self.ui.document.default_css)
end
}, },
} }
for f in lfs.dir("./data") do for f in lfs.dir("./data") do
if lfs.attributes("./data/"..f, "mode") == "file" and string.match(f, "%.css$") then if lfs.attributes("./data/"..f, "mode") == "file" and string.match(f, "%.css$") then
table.insert(file_list, { table.insert(file_list, {
text = f, text = f,
callback = function() css = "./data/"..f
self:setStyleSheet("./data/"..f)
end
}) })
end end
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 end
function ReaderTypeset:setStyleSheet(new_css) function ReaderTypeset:setStyleSheet(new_css)
@ -166,6 +172,18 @@ function ReaderTypeset:makeDefaultFloatingPunctuation()
}) })
end 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) function ReaderTypeset:onSetPageMargins(margins)
local left = Screen:scaleBySize(margins[1]) local left = Screen:scaleBySize(margins[1])
local top = Screen:scaleBySize(margins[2]) local top = Screen:scaleBySize(margins[2])

Loading…
Cancel
Save