Added Embedded Fonts config toggle

Just under the existing "Embedded Styles". Support for this
was already there in crengine, and interfacing is similar to
what is done with Embedded Styles.
This commit is contained in:
poire-z
2017-08-30 09:04:04 +02:00
committed by Frans de Jonge
parent 40ec848098
commit 774d2345e0
4 changed files with 57 additions and 1 deletions

View File

@@ -26,6 +26,21 @@ function ReaderTypeset:onReadSettings(config)
self.css = self.ui.document.default_css
end
self.embedded_fonts = config:readSetting("embedded_fonts")
if self.embedded_fonts == nil then
-- default to enable embedded fonts
-- note that it's a bit confusing here:
-- global settins store 0/1, while document settings store false/true
-- we leave it that way for now to maintain backwards compatibility
local global = G_reader_settings:readSetting("copt_embedded_fonts")
self.embedded_fonts = (global == nil or global == 1) and true or false
end
-- As this is new, call it only when embedded_fonts are explicitely disabled
-- self.ui.document:setEmbeddedFonts(self.embedded_fonts and 1 or 0)
if not self.embedded_fonts then
self.ui.document:setEmbeddedFonts(0)
end
self.embedded_css = config:readSetting("embedded_css")
if self.embedded_css == nil then
-- default to enable embedded css
@@ -61,6 +76,7 @@ function ReaderTypeset:onSaveSettings()
self.ui.doc_settings:saveSetting("css", self.css)
self.ui.doc_settings:saveSetting("embedded_css", self.embedded_css)
self.ui.doc_settings:saveSetting("floating_punctuation", self.floating_punctuation)
self.ui.doc_settings:saveSetting("embedded_fonts", self.embedded_fonts)
end
function ReaderTypeset:onToggleEmbeddedStyleSheet(toggle)
@@ -68,6 +84,11 @@ function ReaderTypeset:onToggleEmbeddedStyleSheet(toggle)
return true
end
function ReaderTypeset:onToggleEmbeddedFonts(toggle)
self:toggleEmbeddedFonts(toggle)
return true
end
function ReaderTypeset:genStyleSheetMenu()
local style_table = {}
local file_list = {
@@ -88,6 +109,7 @@ function ReaderTypeset:genStyleSheetMenu()
})
end
end
table.sort(file_list, function(v1,v2) return v1.text < v2.text end) -- sort by name
for i,file in ipairs(file_list) do
table.insert(style_table, {
text = file["text"],
@@ -136,6 +158,17 @@ function ReaderTypeset:toggleEmbeddedStyleSheet(toggle)
self.ui:handleEvent(Event:new("UpdatePos"))
end
function ReaderTypeset:toggleEmbeddedFonts(toggle)
if not toggle then
self.embedded_fonts = false
self.ui.document:setEmbeddedFonts(0)
else
self.embedded_fonts = true
self.ui.document:setEmbeddedFonts(1)
end
self.ui:handleEvent(Event:new("UpdatePos"))
end
function ReaderTypeset:toggleFloatingPunctuation(toggle)
-- for some reason the toggle value read from history files may stay boolean
-- and there seems no more elegant way to convert boolean values to numbers
@@ -165,7 +198,7 @@ function ReaderTypeset:addToMainMenu(menu_items)
callback = function()
self.floating_punctuation = self.floating_punctuation == 1 and 0 or 1
self:toggleFloatingPunctuation(self.floating_punctuation)
end,
end,
hold_callback = function() self:makeDefaultFloatingPunctuation() end,
}
end