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.
pull/3166/head
poire-z 7 years ago committed by Frans de Jonge
parent 40ec848098
commit 774d2345e0

@ -26,6 +26,21 @@ function ReaderTypeset:onReadSettings(config)
self.css = self.ui.document.default_css self.css = self.ui.document.default_css
end 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") self.embedded_css = config:readSetting("embedded_css")
if self.embedded_css == nil then if self.embedded_css == nil then
-- default to enable embedded css -- 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("css", self.css)
self.ui.doc_settings:saveSetting("embedded_css", self.embedded_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("floating_punctuation", self.floating_punctuation)
self.ui.doc_settings:saveSetting("embedded_fonts", self.embedded_fonts)
end end
function ReaderTypeset:onToggleEmbeddedStyleSheet(toggle) function ReaderTypeset:onToggleEmbeddedStyleSheet(toggle)
@ -68,6 +84,11 @@ function ReaderTypeset:onToggleEmbeddedStyleSheet(toggle)
return true return true
end end
function ReaderTypeset:onToggleEmbeddedFonts(toggle)
self:toggleEmbeddedFonts(toggle)
return true
end
function ReaderTypeset:genStyleSheetMenu() function ReaderTypeset:genStyleSheetMenu()
local style_table = {} local style_table = {}
local file_list = { local file_list = {
@ -88,6 +109,7 @@ function ReaderTypeset:genStyleSheetMenu()
}) })
end end
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 for i,file in ipairs(file_list) do
table.insert(style_table, { table.insert(style_table, {
text = file["text"], text = file["text"],
@ -136,6 +158,17 @@ function ReaderTypeset:toggleEmbeddedStyleSheet(toggle)
self.ui:handleEvent(Event:new("UpdatePos")) self.ui:handleEvent(Event:new("UpdatePos"))
end 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) function ReaderTypeset:toggleFloatingPunctuation(toggle)
-- for some reason the toggle value read from history files may stay boolean -- 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 -- and there seems no more elegant way to convert boolean values to numbers

@ -415,6 +415,11 @@ function CreDocument:setEmbeddedStyleSheet(toggle)
self._document:setIntProperty("crengine.doc.embedded.styles.enabled", toggle) self._document:setIntProperty("crengine.doc.embedded.styles.enabled", toggle)
end end
function CreDocument:setEmbeddedFonts(toggle)
logger.dbg("CreDocument: set embedded fonts", toggle)
self._document:setIntProperty("crengine.doc.embedded.fonts.enabled", toggle)
end
function CreDocument:setPageMargins(left, top, right, bottom) function CreDocument:setPageMargins(left, top, right, bottom)
logger.dbg("CreDocument: set page margins", left, top, right, bottom) logger.dbg("CreDocument: set page margins", left, top, right, bottom)
self._document:setIntProperty("crengine.page.margin.left", left) self._document:setIntProperty("crengine.page.margin.left", left)

@ -14,6 +14,10 @@ local Aa = setmetatable({"Aa"}, {
end end
}) })
local function enable_if_equals(configurable, option, value)
return configurable[option] == value
end
local CreOptions = { local CreOptions = {
prefix = 'copt', prefix = 'copt',
{ {
@ -158,6 +162,19 @@ local CreOptions = {
default_arg = nil, default_arg = nil,
event = "ToggleEmbeddedStyleSheet", event = "ToggleEmbeddedStyleSheet",
}, },
{
name = "embedded_fonts",
name_text = S.EMBEDDED_FONTS,
toggle = {S.ON, S.OFF},
values = {1, 0},
default_value = 1,
args = {true, false},
default_arg = nil,
event = "ToggleEmbeddedFonts",
enabled_func = function(configurable)
return enable_if_equals(configurable, "embedded_css", 1)
end,
},
}, },
}, },
} }

@ -25,6 +25,7 @@ S.FONT_WEIGHT = _("Font Weight")
S.GAMMA = _("Gamma") S.GAMMA = _("Gamma")
S.VIEW_MODE = _("View Mode") S.VIEW_MODE = _("View Mode")
S.EMBEDDED_STYLE = _("Embedded Style") S.EMBEDDED_STYLE = _("Embedded Style")
S.EMBEDDED_FONTS = _("Embedded Fonts")
S.WRITING_DIR = _("Writing Direction") S.WRITING_DIR = _("Writing Direction")
S.PROGRESS_BAR = _("Progress Bar") S.PROGRESS_BAR = _("Progress Bar")
S.FORCED_OCR = _("Forced OCR") S.FORCED_OCR = _("Forced OCR")

Loading…
Cancel
Save