You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koreader/frontend/apps/reader/modules/readerstatus.lua

67 lines
1.7 KiB
Lua

local InputContainer = require("ui/widget/container/inputcontainer")
local StatusWidget = require("ui/widget/statuswidget")
local UIManager = require("ui/uimanager")
local _ = require("gettext")
local ReaderStatus = InputContainer:new {
document = nil,
summary = {
rating = 0,
note = nil,
status = "",
modified = "",
},
enabled = true,
total_pages = 0
}
function ReaderStatus:init()
if self.ui.document.is_djvu or self.ui.document.is_pdf or self.ui.document.is_pic then
self.enabled = false
return
end
self.total_pages = self.document:getPageCount()
UIManager:scheduleIn(0.1, function() self.ui.menu:registerToMainMenu(self) end)
end
function ReaderStatus:addToMainMenu(tab_item_table)
table.insert(tab_item_table.typeset, {
text = _("Status"),
callback = function()
self:showStatus()
UIManager:setDirty("all")
end,
})
end
function ReaderStatus:showStatus()
local statusWidget = StatusWidget:new {
thumbnail = self.document:getCoverPageImage(),
props = self.document:getProps(),
document = self.document,
settings = self.settings,
}
UIManager:show(statusWidget)
end
function ReaderStatus:onPageUpdate(pageno)
if self.enabled then
--in case when pageUpdate event generated before _document:render()
if pageno > self.total_pages or self.total_pages == 1 then
self.total_pages = self.document:getPageCount()
end
if pageno == self.total_pages and self.total_pages ~= 1 then
self:showStatus()
end
end
end
function ReaderStatus:onReadSettings(config)
self.settings = config
end
return ReaderStatus