Pull genStatusButton() to filemanagerutil

reviewable/pr10074/r12^2
Melik 1 year ago committed by Frans de Jonge
parent 502bb0ccbf
commit 31cfffc289

@ -340,27 +340,14 @@ function FileManager:setupLayout()
if is_file then
local status = filemanagerutil.getStatus(file)
local function genStatusButton(to_status)
local status_text = {
reading = _("Reading"),
abandoned = _("On hold"),
complete = _("Finished"),
}
return {
text = status_text[to_status],
id = to_status, -- used by covermenu
enabled = status ~= to_status,
callback = function()
filemanagerutil.setStatus(file, to_status)
self:refreshPath()
UIManager:close(self.file_dialog)
end,
}
local function status_button_callback()
self:refreshPath()
UIManager:close(self.file_dialog)
end
table.insert(buttons, {
genStatusButton("reading"),
genStatusButton("abandoned"),
genStatusButton("complete"),
filemanagerutil.genStatusButton("reading", status ~= "reading", file, status_button_callback),
filemanagerutil.genStatusButton("abandoned", status ~= "abandoned", file, status_button_callback),
filemanagerutil.genStatusButton("complete", status ~= "complete", file, status_button_callback),
})
table.insert(buttons, {}) -- separator
table.insert(buttons, {

@ -46,28 +46,15 @@ end
function FileManagerCollection:onMenuHold(item)
self.collfile_dialog = nil
local status = filemanagerutil.getStatus(item.file)
local function genStatusButton(to_status)
local status_text = {
reading = _("Reading"),
abandoned = _("On hold"),
complete = _("Finished"),
}
return {
text = status_text[to_status],
id = to_status, -- used by covermenu
enabled = status ~= to_status,
callback = function()
filemanagerutil.setStatus(item.file, to_status)
self._manager:updateItemTable()
UIManager:close(self.collfile_dialog)
end,
}
local function status_button_callback()
self._manager:updateItemTable()
UIManager:close(self.collfile_dialog)
end
local buttons = {
{
genStatusButton("reading"),
genStatusButton("abandoned"),
genStatusButton("complete"),
filemanagerutil.genStatusButton("reading", status ~= "reading", item.file, status_button_callback),
filemanagerutil.genStatusButton("abandoned", status ~= "abandoned", item.file, status_button_callback),
filemanagerutil.genStatusButton("complete", status ~= "complete", item.file, status_button_callback),
},
{},
{

@ -90,33 +90,20 @@ function FileManagerHistory:onMenuHold(item)
local currently_opened_file = readerui_instance and readerui_instance.document and readerui_instance.document.file
self.histfile_dialog = nil
local status = filemanagerutil.getStatus(item.file)
local function genStatusButton(to_status)
local status_text = {
reading = _("Reading"),
abandoned = _("On hold"),
complete = _("Finished"),
}
return {
text = status_text[to_status],
id = to_status, -- used by covermenu
enabled = not item.dim and status ~= to_status,
callback = function()
filemanagerutil.setStatus(item.file, to_status)
if self._manager.filter ~= "all" then
self._manager:fetchStatuses(false)
else
self._manager.statuses_fetched = false
end
self._manager:updateItemTable()
UIManager:close(self.histfile_dialog)
end,
}
local function status_button_callback()
if self._manager.filter ~= "all" then
self._manager:fetchStatuses(false)
else
self._manager.statuses_fetched = false
end
self._manager:updateItemTable()
UIManager:close(self.histfile_dialog)
end
local buttons = {
{
genStatusButton("reading"),
genStatusButton("abandoned"),
genStatusButton("complete"),
filemanagerutil.genStatusButton("reading", not item.dim and status ~= "reading", item.file, status_button_callback),
filemanagerutil.genStatusButton("abandoned", not item.dim and status ~= "abandoned", item.file, status_button_callback),
filemanagerutil.genStatusButton("complete", not item.dim and status ~= "complete", item.file, status_button_callback),
},
{},
{

@ -108,4 +108,22 @@ function filemanagerutil.setStatus(file, status)
docinfo:flush()
end
-- Generate a book status file dialog button
function filemanagerutil.genStatusButton(to_status, enabled, file, caller_callback)
local status_text = {
reading = _("Reading"),
abandoned = _("On hold"),
complete = _("Finished"),
}
return {
text = status_text[to_status],
id = to_status, -- used by covermenu
enabled = enabled,
callback = function()
filemanagerutil.setStatus(file, to_status)
caller_callback()
end,
}
end
return filemanagerutil

Loading…
Cancel
Save