fix #1142 by adding 'show page overlap' option for EPUB doc

And 'show page overlap' option is disabled in "page" mode for EPUBs,
and in fit to page/*height zoom mode for PDFs.
pull/1152/head
chrox 10 years ago
parent 24d629d4e7
commit 307bbe8675

@ -136,15 +136,20 @@ function ReaderPaging:onSaveSettings()
end end
function ReaderPaging:addToMainMenu(tab_item_table) function ReaderPaging:addToMainMenu(tab_item_table)
if self.ui.document.info.has_pages then table.insert(tab_item_table.typeset, {
table.insert(tab_item_table.typeset, { text = _("Show page overlap"),
text = _("Show page overlap"), enabled_func = function()
checked_func = function() return self.show_overlap_enable end, return not self.view.page_scroll and self.zoom_mode ~= "page"
callback = function() and not self.zoom_mode:find("height")
self.show_overlap_enable = not self.show_overlap_enable end,
checked_func = function() return self.show_overlap_enable end,
callback = function()
self.show_overlap_enable = not self.show_overlap_enable
if not self.show_overlap_enable then
self.view:resetDimArea()
end end
}) end
end })
end end
--[[ --[[

@ -39,7 +39,7 @@ local ReaderRolling = InputContainer:new{
doc_height = nil, doc_height = nil,
xpointer = nil, xpointer = nil,
panning_steps = ReaderPanning.panning_steps, panning_steps = ReaderPanning.panning_steps,
show_overlap_enable = true, show_overlap_enable = nil,
overlap = 20, overlap = 20,
} }
@ -94,6 +94,7 @@ function ReaderRolling:init()
self.old_doc_height = self.doc_height self.old_doc_height = self.doc_height
self.old_page = self.ui.document.info.number_of_pages self.old_page = self.ui.document.info.number_of_pages
end) end)
self.ui.menu:registerToMainMenu(self)
end end
-- This method will be called in onSetDimensions handler -- This method will be called in onSetDimensions handler
@ -168,10 +169,6 @@ function ReaderRolling:initGesListener()
end end
function ReaderRolling:onReadSettings(config) function ReaderRolling:onReadSettings(config)
local soe = config:readSetting("show_overlap_enable")
if not soe then
self.show_overlap_enable = soe
end
local last_xp = config:readSetting("last_xpointer") local last_xp = config:readSetting("last_xpointer")
local last_per = config:readSetting("last_percent") local last_per = config:readSetting("last_percent")
if last_xp then if last_xp then
@ -197,6 +194,10 @@ function ReaderRolling:onReadSettings(config)
end end
self.xpointer = self.ui.document:getXPointer() self.xpointer = self.ui.document:getXPointer()
end end
self.show_overlap_enable = config:readSetting("show_overlap_enable")
if self.show_overlap_enable == nil then
self.show_overlap_enable = DSHOWOVERLAP
end
end end
function ReaderRolling:onSaveSettings() function ReaderRolling:onSaveSettings()
@ -204,6 +205,21 @@ function ReaderRolling:onSaveSettings()
self.ui.doc_settings:saveSetting("last_percent", nil) self.ui.doc_settings:saveSetting("last_percent", nil)
self.ui.doc_settings:saveSetting("last_xpointer", self.xpointer) self.ui.doc_settings:saveSetting("last_xpointer", self.xpointer)
self.ui.doc_settings:saveSetting("percent_finished", self:getLastPercent()) self.ui.doc_settings:saveSetting("percent_finished", self:getLastPercent())
self.ui.doc_settings:saveSetting("show_overlap_enable", self.show_overlap_enable)
end
function ReaderRolling:addToMainMenu(tab_item_table)
table.insert(tab_item_table.typeset, {
text = _("Show page overlap"),
enabled_func = function() return self.view.view_mode ~= "page" end,
checked_func = function() return self.show_overlap_enable end,
callback = function()
self.show_overlap_enable = not self.show_overlap_enable
if not self.show_overlap_enable then
self.view:resetDimArea()
end
end
})
end end
function ReaderRolling:getLastPercent() function ReaderRolling:getLastPercent()

@ -54,7 +54,7 @@ local ReaderView = OverlapGroup:new{
-- dimen for current viewing page -- dimen for current viewing page
page_area = Geom:new{}, page_area = Geom:new{},
-- dimen for area to dim -- dimen for area to dim
dim_area = Geom:new{w = 0, h = 0}, dim_area = nil,
-- has footer -- has footer
footer_visible = nil, footer_visible = nil,
-- has dogear -- has dogear
@ -69,9 +69,15 @@ local ReaderView = OverlapGroup:new{
function ReaderView:init() function ReaderView:init()
-- fix recalculate from close document pageno -- fix recalculate from close document pageno
self.state.page = nil self.state.page = nil
-- fix inherited dim_area for following opened documents
self:resetDimArea()
self:resetLayout() self:resetLayout()
end end
function ReaderView:resetDimArea()
self.dim_area = Geom:new{w = 0, h = 0}
end
function ReaderView:resetLayout() function ReaderView:resetLayout()
self.dogear = ReaderDogear:new{ self.dogear = ReaderDogear:new{
view = self, view = self,

Loading…
Cancel
Save