From 8a2b86e2032b70780bbdd8d436b318f5cca634e8 Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Fri, 30 Mar 2012 13:07:48 +0800 Subject: [PATCH] mod: factor last reading page saving and resotring --- reader.lua | 1 + unireader.lua | 41 ++++++++++++++++++++++++----------------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/reader.lua b/reader.lua index 8e6b33af6..087dc72a2 100755 --- a/reader.lua +++ b/reader.lua @@ -51,6 +51,7 @@ function openFile(filename) if ok then reader:loadSettings(filename) page_num = reader.settings:readSetting("last_page") or 1 + page_num = reader:getLastPageOrPos() reader:goto(tonumber(page_num)) reader_settings:savesetting("lastfile", filename) return reader:inputLoop() diff --git a/unireader.lua b/unireader.lua index 81b37e1fc..51c02c5cf 100644 --- a/unireader.lua +++ b/unireader.lua @@ -128,6 +128,24 @@ end --[ following are default methods ]-- +function UniReader:initGlobalSettings(settings) + local pan_overlap_vertical = settings:readSetting("pan_overlap_vertical") + if pan_overlap_vertical then + self.pan_overlap_vertical = pan_overlap_vertical + end + -- initialize commands + self:addAllCommands() + + local cache_max_memsize = settings:readSetting("cache_max_memsize") + if cache_max_memsize then + self.cache_max_memsize = cache_max_memsize + end + + local cache_max_ttl = settings:readSetting("cache_max_ttl") + if cache_max_ttl then + self.cache_max_ttl = cache_max_ttl + end +end function UniReader:loadSettings(filename) if self.doc ~= nil then @@ -156,23 +174,12 @@ function UniReader:loadSettings(filename) return false end -function UniReader:initGlobalSettings(settings) - local pan_overlap_vertical = settings:readSetting("pan_overlap_vertical") - if pan_overlap_vertical then - self.pan_overlap_vertical = pan_overlap_vertical - end - -- initialize commands - self:addAllCommands() +function UniReader:getLastPageOrPos() + return self.settings:readSetting("last_page") or 1 +end - local cache_max_memsize = settings:readSetting("cache_max_memsize") - if cache_max_memsize then - self.cache_max_memsize = cache_max_memsize - end - - local cache_max_ttl = settings:readSetting("cache_max_ttl") - if cache_max_ttl then - self.cache_max_ttl = cache_max_ttl - end +function UniReader:saveLastPageOrPos() + self.settings:savesetting("last_page", self.pageno) end -- guarantee that we have enough memory in cache @@ -869,7 +876,7 @@ function UniReader:inputLoop() self.doc:close() end if self.settings ~= nil then - self.settings:savesetting("last_page", self.pageno) + self:saveLastPageOrPos() self.settings:savesetting("gamma", self.globalgamma) self.settings:savesetting("jumpstack", self.jump_stack) self.settings:savesetting("bbox", self.bbox)