mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Alt status bar: custom metadata support (#11463)
This commit is contained in:
@@ -64,6 +64,27 @@ function ReaderCoptListener:onReadSettings(config)
|
||||
self:rescheduleHeaderRefreshIfNeeded() -- schedule (or not) first refresh
|
||||
end
|
||||
|
||||
function ReaderCoptListener:onReaderReady()
|
||||
-- custom metadata support for alt status bar and cre synthetic cover
|
||||
for prop_key in pairs(self.document.prop_to_cre_prop) do
|
||||
local orig_prop_value = self.ui.doc_settings:readSetting(prop_key)
|
||||
local custom_prop_key = prop_key == "title" and "display_title" or prop_key
|
||||
local custom_prop_value = self.ui.doc_props[custom_prop_key]
|
||||
if custom_prop_value ~= orig_prop_value then
|
||||
self.document:setAltDocumentProp(prop_key, custom_prop_value)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function ReaderCoptListener:onBookMetadataChanged(prop_updated)
|
||||
-- custom metadata support for alt status bar and cre synthetic cover
|
||||
local prop_key = prop_updated and prop_updated.metadata_key_updated
|
||||
if prop_key and self.document.prop_to_cre_prop[prop_key] then
|
||||
self.document:setAltDocumentProp(prop_key, prop_updated.doc_props[prop_key])
|
||||
self:updateHeader()
|
||||
end
|
||||
end
|
||||
|
||||
function ReaderCoptListener:onConfigChange(option_name, option_value)
|
||||
-- font_size and line_spacing are historically and sadly shared by both mupdf and cre reader modules,
|
||||
-- but fortunately they can be distinguished by their different ranges
|
||||
|
||||
@@ -171,10 +171,8 @@ function ReaderFont:onReadSettings(config)
|
||||
or self.ui.document.default_font
|
||||
self.ui.document:setFontFace(self.font_face)
|
||||
|
||||
self.header_font_face = config:readSetting("header_font_face")
|
||||
or G_reader_settings:readSetting("header_font")
|
||||
or self.ui.document.header_font
|
||||
self.ui.document:setHeaderFont(self.header_font_face)
|
||||
local header_font = G_reader_settings:readSetting("header_font") or self.ui.document.header_font
|
||||
self.ui.document:setHeaderFont(header_font)
|
||||
|
||||
self.ui.document:setFontSize(Screen:scaleBySize(self.configurable.font_size))
|
||||
self.ui.document:setFontBaseWeight(self.configurable.font_base_weight)
|
||||
@@ -311,7 +309,6 @@ end
|
||||
|
||||
function ReaderFont:onSaveSettings()
|
||||
self.ui.doc_settings:saveSetting("font_face", self.font_face)
|
||||
self.ui.doc_settings:saveSetting("header_font_face", self.header_font_face)
|
||||
self.ui.doc_settings:saveSetting("font_family_fonts", self.font_family_fonts)
|
||||
end
|
||||
|
||||
|
||||
@@ -313,8 +313,6 @@ function ReaderRolling:onReadSettings(config)
|
||||
end)
|
||||
end
|
||||
|
||||
-- in scroll mode percent_finished must be save before close document
|
||||
-- we cannot do it in onSaveSettings() because getLastPercent() uses self.ui.document
|
||||
function ReaderRolling:onCloseDocument()
|
||||
self:tearDownRerenderingAutomation()
|
||||
-- Unschedule anything that might still somehow be...
|
||||
@@ -328,6 +326,7 @@ function ReaderRolling:onCloseDocument()
|
||||
UIManager:unschedule(self.onUpdatePos)
|
||||
|
||||
self.current_header_height = nil -- show unload progress bar at top
|
||||
-- we cannot do it in onSaveSettings() because getLastPercent() uses self.ui.document
|
||||
self.ui.doc_settings:saveSetting("percent_finished", self:getLastPercent())
|
||||
|
||||
local cache_file_path = self.ui.document:getCacheFilePath() -- nil if no cache file
|
||||
@@ -375,15 +374,8 @@ function ReaderRolling:onCheckDomStyleCoherence()
|
||||
end
|
||||
|
||||
function ReaderRolling:onSaveSettings()
|
||||
-- remove last_percent config since its deprecated
|
||||
self.ui.doc_settings:delSetting("last_percent")
|
||||
self.ui.doc_settings:delSetting("last_percent") -- deprecated
|
||||
self.ui.doc_settings:saveSetting("last_xpointer", self.xpointer)
|
||||
-- in scrolling mode, the document may already be closed,
|
||||
-- so we have to check the condition to avoid crash function self:getLastPercent()
|
||||
-- that uses self.ui.document
|
||||
if self.ui.document then
|
||||
self.ui.doc_settings:saveSetting("percent_finished", self:getLastPercent())
|
||||
end
|
||||
self.ui.doc_settings:saveSetting("hide_nonlinear_flows", self.hide_nonlinear_flows)
|
||||
self.ui.doc_settings:saveSetting("partial_rerendering", self.partial_rerendering)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user