readercoptlistener: fix overriding (#14638)

This commit is contained in:
hius07
2025-11-23 08:47:44 +02:00
committed by GitHub
parent 55bf6c9c55
commit aaea5be42c

View File

@@ -88,19 +88,17 @@ function ReaderCoptListener:onReaderReady()
end
function ReaderCoptListener:updatePageInfoOverride(pageno)
pageno = pageno or self.ui.view.footer.pageno
if self.document.configurable.status_line ~= 0 or self.view.view_mode ~= "page"
or not self.page_info_override or not next(self.additional_header_content) then
if self.document.configurable.status_line ~= 0 or self.view.view_mode ~= "page" -- no alt status bar
or not (self.page_info_override or next(self.additional_header_content)) -- no items to override
then
self.document:setPageInfoOverride("")
return
end
-- There are a few cases where we may not be updated on change, at least:
-- - when toggling ReaderPageMap's "Use reference page numbers"
-- - when changing footer's nb of digits after decimal point
-- but we will update on next page turn. Let's not bother.
pageno = pageno or self.view.footer.pageno
local page_pre = ""
local page_number = pageno
local page_sep = " / "
@@ -117,19 +115,18 @@ function ReaderCoptListener:updatePageInfoOverride(pageno)
-- but here each item (page number, page counte, percentage) is individually toggable,
-- so try to get something that make sense when not all are enabled
if self.ui.pagemap and self.ui.pagemap:wantsPageLabels() then
-- These become strings here
page_number = self.ui.pagemap:getCurrentPageLabel(true)
page_count = self.ui.pagemap:getLastPageLabel(true)
elseif self.ui.document:hasHiddenFlows() then
local flow = self.ui.document:getPageFlow(pageno)
page_number = tostring(self.ui.document:getPageNumberInFlow(pageno))
page_count = tostring(self.ui.document:getTotalPagesInFlow(flow))
page_number = self.ui.document:getPageNumberInFlow(pageno)
page_count = self.ui.document:getTotalPagesInFlow(flow)
percentage = page_number / page_count
if flow == 0 then
page_sep = " // "
else
page_pre = "["
page_post = "]"..tostring(flow)
page_post = "]" .. flow
percentage_pre = "["
percentage_post = "]"
end
@@ -208,6 +205,11 @@ function ReaderCoptListener:onPosUpdate(pos, pageno)
self:updatePageInfoOverride(pageno)
end
function ReaderCoptListener:onUsePageLabelsUpdated()
self:updatePageInfoOverride()
self:updateHeader()
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