From 44eb70bcf527396d27155e7da485278763620f4d Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Sat, 5 Jan 2013 20:34:11 -0500 Subject: [PATCH 1/4] use ReaderRolling.view_mode instead of self.ui.document.view_mode view_mode is removed from self.ui.document --- frontend/ui/reader/readerrolling.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/ui/reader/readerrolling.lua b/frontend/ui/reader/readerrolling.lua index caca7691a..591e90cd9 100644 --- a/frontend/ui/reader/readerrolling.lua +++ b/frontend/ui/reader/readerrolling.lua @@ -133,7 +133,7 @@ end function ReaderRolling:onGotoViewRel(diff) DEBUG("goto relative screen:", diff) - if self.ui.document.view_mode ~= "page" then + if self.view_mode ~= "page" then local pan_diff = diff * self.ui.dimen.h if self.show_overlap_enable then if pan_diff > self.overlap then @@ -186,7 +186,7 @@ function ReaderRolling:gotoPos(new_pos) if new_pos < 0 then new_pos = 0 end if new_pos > self.doc_height then new_pos = self.doc_height end -- adjust dim_area according to new_pos - if self.ui.document.view_mode ~= "page" and self.show_overlap_enable then + if self.view_mode ~= "page" and self.show_overlap_enable then local panned_step = new_pos - self.current_pos self.view.dim_area.x = 0 self.view.dim_area.h = self.ui.dimen.h - math.abs(panned_step) From f41f64546595ba582883fc78f7ec49a84a8d7f1a Mon Sep 17 00:00:00 2001 From: chrox Date: Sun, 6 Jan 2013 20:56:53 +0800 Subject: [PATCH 2/4] add last_percent field in pdf/djvu document history And normalize last_percent for cre document --- frontend/ui/reader/readerpaging.lua | 1 + frontend/ui/reader/readerrolling.lua | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/ui/reader/readerpaging.lua b/frontend/ui/reader/readerpaging.lua index f9da309e7..d5b3f9208 100644 --- a/frontend/ui/reader/readerpaging.lua +++ b/frontend/ui/reader/readerpaging.lua @@ -77,6 +77,7 @@ end function ReaderPaging:onCloseDocument() self.ui.doc_settings:saveSetting("last_page", self.current_page) + self.ui.doc_settings:saveSetting("last_percent", self.current_page/self.number_of_pages) end function ReaderPaging:onTapForward() diff --git a/frontend/ui/reader/readerrolling.lua b/frontend/ui/reader/readerrolling.lua index caca7691a..ecc2914d3 100644 --- a/frontend/ui/reader/readerrolling.lua +++ b/frontend/ui/reader/readerrolling.lua @@ -104,7 +104,7 @@ end function ReaderRolling:onCloseDocument() local cur_xp = self.ui.document:getXPointer() self.ui.doc_settings:saveSetting("last_percent", - 10000 * self.ui.document:getPosFromXPointer(cur_xp) / self.doc_height) + self.ui.document:getPosFromXPointer(cur_xp) / self.doc_height) end function ReaderRolling:onTapForward() @@ -214,7 +214,7 @@ function ReaderRolling:gotoXPointer(xpointer) end function ReaderRolling:gotoPercent(new_percent) - self:gotoPos(new_percent * self.doc_height / 10000) + self:gotoPos(new_percent * self.doc_height) end From c4bc6e3cd33809d8f2a8590df62a3be88d55012c Mon Sep 17 00:00:00 2001 From: chrox Date: Mon, 7 Jan 2013 13:29:00 +0800 Subject: [PATCH 3/4] add percent_finished for KPVBooklet and restore original last_percent --- frontend/ui/reader/readerpaging.lua | 2 +- frontend/ui/reader/readerrolling.lua | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/ui/reader/readerpaging.lua b/frontend/ui/reader/readerpaging.lua index d5b3f9208..0fafc24ee 100644 --- a/frontend/ui/reader/readerpaging.lua +++ b/frontend/ui/reader/readerpaging.lua @@ -77,7 +77,7 @@ end function ReaderPaging:onCloseDocument() self.ui.doc_settings:saveSetting("last_page", self.current_page) - self.ui.doc_settings:saveSetting("last_percent", self.current_page/self.number_of_pages) + self.ui.doc_settings:saveSetting("percent_finished", self.current_page/self.number_of_pages) end function ReaderPaging:onTapForward() diff --git a/frontend/ui/reader/readerrolling.lua b/frontend/ui/reader/readerrolling.lua index ecc2914d3..1af469bcb 100644 --- a/frontend/ui/reader/readerrolling.lua +++ b/frontend/ui/reader/readerrolling.lua @@ -103,8 +103,9 @@ end function ReaderRolling:onCloseDocument() local cur_xp = self.ui.document:getXPointer() - self.ui.doc_settings:saveSetting("last_percent", - self.ui.document:getPosFromXPointer(cur_xp) / self.doc_height) + local cur_pos = self.ui.document:getPosFromXPointer(cur_xp) + self.ui.doc_settings:saveSetting("last_percent", 10000 * cur_pos / self.doc_height) + self.ui.doc_settings:saveSetting("percent_finished", cur_pos / self.doc_height) end function ReaderRolling:onTapForward() @@ -214,7 +215,7 @@ function ReaderRolling:gotoXPointer(xpointer) end function ReaderRolling:gotoPercent(new_percent) - self:gotoPos(new_percent * self.doc_height) + self:gotoPos(new_percent * self.doc_height / 10000) end From c8b699c068c96bf8d8e7181c47246072c74c8460 Mon Sep 17 00:00:00 2001 From: chrox Date: Tue, 8 Jan 2013 16:54:34 +0800 Subject: [PATCH 4/4] bugfix: check renderpg hash before hinting page --- frontend/document/document.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/frontend/document/document.lua b/frontend/document/document.lua index 5c1bfa60b..ca68c5f97 100644 --- a/frontend/document/document.lua +++ b/frontend/document/document.lua @@ -204,7 +204,11 @@ end -- a hint for the cache engine to paint a full page to the cache -- TODO: this should trigger a background operation function Document:hintPage(pageno, zoom, rotation) - self:renderPage(pageno, nil, zoom, rotation) + local hash_full_page = "renderpg|"..self.file.."|"..pageno.."|"..zoom.."|"..rotation + local tile = Cache:check(hash_full_page) + if not tile then + self:renderPage(pageno, nil, zoom, rotation) + end end --[[