From 31cfffc289a115664dbf851b962b625397c9eb2a Mon Sep 17 00:00:00 2001 From: Melik <10296053+melyux@users.noreply.github.com> Date: Sat, 4 Feb 2023 13:05:06 -0800 Subject: [PATCH] Pull genStatusButton() to filemanagerutil --- frontend/apps/filemanager/filemanager.lua | 25 ++++--------- .../filemanager/filemanagercollection.lua | 25 ++++--------- .../apps/filemanager/filemanagerhistory.lua | 35 ++++++------------- frontend/apps/filemanager/filemanagerutil.lua | 18 ++++++++++ 4 files changed, 41 insertions(+), 62 deletions(-) diff --git a/frontend/apps/filemanager/filemanager.lua b/frontend/apps/filemanager/filemanager.lua index 33a9b52cd..66da6094e 100644 --- a/frontend/apps/filemanager/filemanager.lua +++ b/frontend/apps/filemanager/filemanager.lua @@ -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, { diff --git a/frontend/apps/filemanager/filemanagercollection.lua b/frontend/apps/filemanager/filemanagercollection.lua index 528ba1a37..b75f3d9e8 100644 --- a/frontend/apps/filemanager/filemanagercollection.lua +++ b/frontend/apps/filemanager/filemanagercollection.lua @@ -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), }, {}, { diff --git a/frontend/apps/filemanager/filemanagerhistory.lua b/frontend/apps/filemanager/filemanagerhistory.lua index 921c4cfd9..365dc70a4 100644 --- a/frontend/apps/filemanager/filemanagerhistory.lua +++ b/frontend/apps/filemanager/filemanagerhistory.lua @@ -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), }, {}, { diff --git a/frontend/apps/filemanager/filemanagerutil.lua b/frontend/apps/filemanager/filemanagerutil.lua index 81bc6d2be..ef38ce891 100644 --- a/frontend/apps/filemanager/filemanagerutil.lua +++ b/frontend/apps/filemanager/filemanagerutil.lua @@ -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