mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
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:
@@ -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
|
||||
|
||||
@@ -415,6 +415,11 @@ function CreDocument:setEmbeddedStyleSheet(toggle)
|
||||
self._document:setIntProperty("crengine.doc.embedded.styles.enabled", toggle)
|
||||
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)
|
||||
logger.dbg("CreDocument: set page margins", left, top, right, bottom)
|
||||
self._document:setIntProperty("crengine.page.margin.left", left)
|
||||
|
||||
@@ -14,6 +14,10 @@ local Aa = setmetatable({"Aa"}, {
|
||||
end
|
||||
})
|
||||
|
||||
local function enable_if_equals(configurable, option, value)
|
||||
return configurable[option] == value
|
||||
end
|
||||
|
||||
local CreOptions = {
|
||||
prefix = 'copt',
|
||||
{
|
||||
@@ -158,6 +162,19 @@ local CreOptions = {
|
||||
default_arg = nil,
|
||||
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.VIEW_MODE = _("View Mode")
|
||||
S.EMBEDDED_STYLE = _("Embedded Style")
|
||||
S.EMBEDDED_FONTS = _("Embedded Fonts")
|
||||
S.WRITING_DIR = _("Writing Direction")
|
||||
S.PROGRESS_BAR = _("Progress Bar")
|
||||
S.FORCED_OCR = _("Forced OCR")
|
||||
|
||||
Reference in New Issue
Block a user