mirror of
https://github.com/koreader/koreader
synced 2024-10-31 21:20:20 +00:00
70 lines
1.7 KiB
Lua
70 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_pic then
|
|
self.enabled = false
|
|
return
|
|
end
|
|
self.total_pages = self.document:getPageCount()
|
|
self.ui:registerPostInitCallback(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,
|
|
view = self.view,
|
|
}
|
|
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
|
|
|