From a6e67a2a6c8b6944b1c4271c5ae6ea5c6a7ea783 Mon Sep 17 00:00:00 2001 From: hius07 <62179190+hius07@users.noreply.github.com> Date: Tue, 2 Apr 2024 18:30:49 +0300 Subject: [PATCH] readerannotation: update item on DOMVersionUpgrade --- .../apps/reader/modules/readerannotation.lua | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/frontend/apps/reader/modules/readerannotation.lua b/frontend/apps/reader/modules/readerannotation.lua index 7cfa0cebe..4ba5dc90e 100644 --- a/frontend/apps/reader/modules/readerannotation.lua +++ b/frontend/apps/reader/modules/readerannotation.lua @@ -1,5 +1,7 @@ local WidgetContainer = require("ui/widget/container/widgetcontainer") local logger = require("logger") +local _ = require("gettext") +local T = require("ffi/util").template local ReaderAnnotation = WidgetContainer:extend{ annotations = nil, @@ -227,7 +229,7 @@ end -- items handling function ReaderAnnotation:updatePosPercent() - if self.update then -- triggered by ReaderRolling + if self.update then -- triggered by ReaderRolling on document layout change for _, item in ipairs(self.annotations) do item.pos_percent = self.document:getPosFromXPointer(item.page) / self.document.info.doc_height end @@ -235,6 +237,19 @@ function ReaderAnnotation:updatePosPercent() end end +function ReaderAnnotation:updateItemByXPointer(item) + -- called by ReaderRolling:checkXPointersAndProposeDOMVersionUpgrade() + local chapter = self.ui.toc:getTocTitleByPage(item.page) + if chapter == "" then + chapter = nil + end + if not item.drawer then -- page bookmark + item.text = chapter and T(_("in %1"), chapter) or nil + end + item.chapter = chapter + item.pos_percent = self.document:getPosFromXPointer(item.page) / self.document.info.doc_height +end + function ReaderAnnotation:isItemInPositionOrderRolling(a, b) local a_page = self.document:getPageFromXPointer(a.page) local b_page = self.document:getPageFromXPointer(b.page)