mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
add 'full/mini' options for progress bar of crereader
This commit is contained in:
@@ -20,6 +20,9 @@ function ReaderCoptListener:onReadSettings(config)
|
||||
self.ui:handleEvent(Event:new("SetViewMode", "scroll"))
|
||||
end)
|
||||
end
|
||||
|
||||
local status_line = config:readSetting("copt_status_line") or 0
|
||||
self.document:setStatusLineProp(status_line)
|
||||
end
|
||||
|
||||
function ReaderCoptListener:onSetFontSize(font_size)
|
||||
|
||||
@@ -63,7 +63,7 @@ function ReaderFooter:init()
|
||||
self.dimen = self[1]:getSize()
|
||||
self.pageno = self.view.state.page
|
||||
self.pages = self.view.document.info.number_of_pages
|
||||
self:updateFooter()
|
||||
self:updateFooterPage()
|
||||
if Device:isTouchDevice() then
|
||||
self.ges_events = {
|
||||
TapFooter = {
|
||||
@@ -76,9 +76,10 @@ function ReaderFooter:init()
|
||||
end
|
||||
end
|
||||
|
||||
function ReaderFooter:updateFooter()
|
||||
function ReaderFooter:updateFooterPage()
|
||||
if type(self.pageno) ~= "number" then return end
|
||||
self.progress_bar.percentage = self.pageno / self.pages
|
||||
|
||||
if self.show_time then
|
||||
self.progress_text.text = os.date("%H:%M")
|
||||
else
|
||||
@@ -86,10 +87,27 @@ function ReaderFooter:updateFooter()
|
||||
end
|
||||
end
|
||||
|
||||
function ReaderFooter:updateFooterPos()
|
||||
if type(self.position) ~= "number" then return end
|
||||
self.progress_bar.percentage = self.position / self.doc_height
|
||||
|
||||
if self.show_time then
|
||||
self.progress_text.text = os.date("%H:%M")
|
||||
else
|
||||
self.progress_text.text = string.format("%1.f", self.progress_bar.percentage*100).."%"
|
||||
end
|
||||
end
|
||||
|
||||
function ReaderFooter:onPageUpdate(pageno)
|
||||
self.pageno = pageno
|
||||
self.pages = self.view.document.info.number_of_pages
|
||||
self:updateFooter()
|
||||
self:updateFooterPage()
|
||||
end
|
||||
|
||||
function ReaderFooter:onPosUpdate(pos)
|
||||
self.position = pos
|
||||
self.doc_height = self.view.document.info.doc_height
|
||||
self:updateFooterPos()
|
||||
end
|
||||
|
||||
function ReaderFooter:onTapFooter(arg, ges)
|
||||
@@ -101,7 +119,11 @@ function ReaderFooter:onTapFooter(arg, ges)
|
||||
else
|
||||
self.show_time = not self.show_time
|
||||
end
|
||||
self:updateFooter()
|
||||
if self.pageno then
|
||||
self:updateFooterPage()
|
||||
else
|
||||
self:updateFooterPos()
|
||||
end
|
||||
UIManager:setDirty(self.view.dialog, "partial")
|
||||
-- consume this tap when footer is visible
|
||||
if self.visible then
|
||||
@@ -109,4 +131,10 @@ function ReaderFooter:onTapFooter(arg, ges)
|
||||
end
|
||||
end
|
||||
|
||||
function ReaderFooter:onSetStatusLine(status_line)
|
||||
self.view.footer_visible = status_line == 1 and true or false
|
||||
self.ui.document:setStatusLineProp(status_line)
|
||||
self.ui:handleEvent(Event:new("UpdatePos"))
|
||||
end
|
||||
|
||||
return ReaderFooter
|
||||
|
||||
@@ -13,7 +13,7 @@ local ReaderView = OverlapGroup:new{
|
||||
|
||||
-- single page state
|
||||
state = {
|
||||
page = 0,
|
||||
page = nil,
|
||||
pos = 0,
|
||||
zoom = 1.0,
|
||||
rotation = 0,
|
||||
@@ -422,7 +422,7 @@ This method is supposed to be only used by ReaderPaging
|
||||
--]]
|
||||
function ReaderView:recalculate()
|
||||
local page_size = nil
|
||||
if self.ui.document.info.has_pages then
|
||||
if self.ui.document.info.has_pages and self.state.page then
|
||||
self.page_area = self:getPageArea(
|
||||
self.state.page,
|
||||
self.state.zoom,
|
||||
@@ -547,24 +547,17 @@ end
|
||||
|
||||
function ReaderView:onReadSettings(config)
|
||||
self.render_mode = config:readSetting("render_mode") or 0
|
||||
local screen_mode = config:readSetting("screen_mode")
|
||||
local screen_mode = config:readSetting("screen_mode") or "portrait"
|
||||
if screen_mode then
|
||||
Screen:setScreenMode(screen_mode)
|
||||
table.insert(self.ui.postInitCallback, function()
|
||||
self:onSetScreenMode(screen_mode, config:readSetting("rotation_mode"))
|
||||
end)
|
||||
self:onSetScreenMode(screen_mode, config:readSetting("rotation_mode"))
|
||||
end
|
||||
self.state.gamma = config:readSetting("gamma") or DGLOBALGAMMA
|
||||
local full_screen = config:readSetting("kopt_full_screen")
|
||||
if full_screen == nil then
|
||||
full_screen = self.document.configurable.full_screen
|
||||
end
|
||||
self.footer_visible = full_screen == 0 and true or false
|
||||
local full_screen = config:readSetting("kopt_full_screen") or self.document.configurable.full_screen
|
||||
local status_line = config:readSetting("copt_status_line") or self.document.configurable.status_line
|
||||
self.footer_visible = (full_screen == 0 or status_line == 1) and true or false
|
||||
self:resetLayout()
|
||||
local page_scroll = config:readSetting("kopt_page_scroll")
|
||||
if page_scroll == nil then
|
||||
page_scroll = self.document.configurable.page_scroll
|
||||
end
|
||||
local page_scroll = config:readSetting("kopt_page_scroll") or self.document.configurable.page_scroll
|
||||
self.page_scroll = page_scroll == 1 and true or false
|
||||
self.highlight.saved = config:readSetting("highlight") or {}
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user