Reset button gen to util, collections current file check

- filemanagerutil.resetDocumentSettings()'s doc_settings:close() -> doc_settings:flush()
- Remove current_status from filemanagerutil.getStatusButtonsRow() args, get it inside from file
- Move genStatusButton() inside filemanagerutil.getStatusButtonsRow()
- Move "Reset settings" button generation to filemanagerutil
- Rename "Reset settings" button to "Reset" and update popup box text
- Disable "Reset settings" for file if it's currently open in Collections (same as History)
reviewable/pr10074/r12^2
Melik 1 year ago committed by Frans de Jonge
parent fb7ec830c6
commit d9b0785a96

@ -339,31 +339,14 @@ function FileManager:setupLayout()
end
if is_file then
local status = filemanagerutil.getStatus(file)
local function status_button_callback()
self:refreshPath()
UIManager:close(self.file_dialog)
end
table.insert(buttons, filemanagerutil.getStatusButtonsRow(status, file, status_button_callback))
table.insert(buttons, filemanagerutil.getStatusButtonsRow(file, status_button_callback))
table.insert(buttons, {}) -- separator
table.insert(buttons, {
{
text = _("Reset settings"),
id = "reset_settings", -- used by covermenu
enabled = DocSettings:hasSidecarFile(BaseUtil.realpath(file)),
callback = function()
UIManager:show(ConfirmBox:new{
text = T(_("Reset settings for this document?\n\n%1\n\nAny highlights or bookmarks will be permanently lost."), BD.filepath(file)),
ok_text = _("Reset"),
ok_callback = function()
filemanagerutil.purgeSettings(file)
require("readhistory"):fileSettingsPurged(file)
self:refreshPath()
UIManager:close(self.file_dialog)
end,
})
end,
},
filemanagerutil.genResetSettingsButton(file, nil, status_button_callback),
{
text_func = function()
if ReadCollection:checkItemExist(file) then

@ -1,8 +1,6 @@
local BD = require("ui/bidi")
local ButtonDialogTitle = require("ui/widget/buttondialogtitle")
local ConfirmBox = require("ui/widget/confirmbox")
local Device = require("device")
local DocSettings = require("docsettings")
local FileManagerBookInfo = require("apps/filemanager/filemanagerbookinfo")
local InfoMessage = require("ui/widget/infomessage")
local Menu = require("ui/widget/menu")
@ -44,33 +42,18 @@ function FileManagerCollection:updateItemTable()
end
function FileManagerCollection:onMenuHold(item)
local readerui_instance = require("apps/reader/readerui"):_getRunningInstance()
local currently_opened_file = readerui_instance and readerui_instance.document and readerui_instance.document.file
self.collfile_dialog = nil
local status = filemanagerutil.getStatus(item.file)
local function status_button_callback()
self._manager:updateItemTable()
UIManager:close(self.collfile_dialog)
end
local buttons = {
filemanagerutil.getStatusButtonsRow(status, item.file, status_button_callback),
filemanagerutil.getStatusButtonsRow(item.file, currently_opened_file, status_button_callback),
{},
{
{
text = _("Reset settings"),
id = "reset_settings", -- used by covermenu
enabled = DocSettings:hasSidecarFile(BaseUtil.realpath(item.file)),
callback = function()
UIManager:show(ConfirmBox:new{
text = T(_("Reset settings for this document?\n\n%1\n\nAny highlights or bookmarks will be permanently lost."), BD.filepath(item.file)),
ok_text = _("Reset"),
ok_callback = function()
filemanagerutil.purgeSettings(item.file)
require("readhistory"):fileSettingsPurged(item.file)
self._manager:updateItemTable()
UIManager:close(self.collfile_dialog)
end,
})
end,
},
filemanagerutil.genResetSettingsButton(item.file, nil, status_button_callback),
{
text = _("Remove from collection"),
callback = function()

@ -1,7 +1,6 @@
local BD = require("ui/bidi")
local ButtonDialogTitle = require("ui/widget/buttondialogtitle")
local ConfirmBox = require("ui/widget/confirmbox")
local DocSettings = require("docsettings")
local FFIUtil = require("ffi/util")
local FileManagerBookInfo = require("apps/filemanager/filemanagerbookinfo")
local Menu = require("ui/widget/menu")
@ -89,7 +88,6 @@ function FileManagerHistory:onMenuHold(item)
local readerui_instance = require("apps/reader/readerui"):_getRunningInstance()
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 status_button_callback()
if self._manager.filter ~= "all" then
self._manager:fetchStatuses(false)
@ -101,29 +99,7 @@ function FileManagerHistory:onMenuHold(item)
end
local buttons = {
{
{
text = _("Reset settings"),
id = "reset_settings", -- used by covermenu
enabled = item.file ~= currently_opened_file and DocSettings:hasSidecarFile(FFIUtil.realpath(item.file)),
callback = function()
UIManager:show(ConfirmBox:new{
text = T(_("Reset settings for this document?\n\n%1\n\nAny highlights or bookmarks will be permanently lost."),
BD.filepath(item.file)),
ok_text = _("Reset"),
ok_callback = function()
filemanagerutil.purgeSettings(item.file)
require("readhistory"):fileSettingsPurged(item.file)
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,
})
end,
},
filemanagerutil.genResetSettingsButton(item.file, currently_opened_file, status_button_callback),
{
text = _("Remove from history"),
callback = function()
@ -164,7 +140,7 @@ function FileManagerHistory:onMenuHold(item)
},
}
if not item.dim then
table.insert(buttons, 1, filemanagerutil.getStatusButtonsRow(status, item.file, status_button_callback))
table.insert(buttons, 1, filemanagerutil.getStatusButtonsRow(item.file, status_button_callback))
table.insert(buttons, 2, {})
end
self.histfile_dialog = ButtonDialogTitle:new{

@ -2,10 +2,14 @@
This module contains miscellaneous helper functions for FileManager
]]
local BD = require("ui/bidi")
local ConfirmBox = require("ui/widget/confirmbox")
local Device = require("device")
local DocSettings = require("docsettings")
local UIManager = require("ui/uimanager")
local util = require("ffi/util")
local _ = require("gettext")
local T = util.template
local filemanagerutil = {}
@ -59,7 +63,7 @@ function filemanagerutil.resetDocumentSettings(file)
end
end
doc_settings:makeTrue("docsettings_reset_done") -- for readertypeset block_rendering_mode
doc_settings:close()
doc_settings:flush()
end
end
@ -127,11 +131,49 @@ function filemanagerutil.genStatusButton(to_status, current_status, file, caller
end
-- Generate all book status file dialog buttons in a row
function filemanagerutil.getStatusButtonsRow(current_status, file, caller_callback)
function filemanagerutil.getStatusButtonsRow(file, caller_callback)
local function genStatusButton(to_status, current_status)
local status_text = {
reading = _("Reading"),
abandoned = _("On hold"),
complete = _("Finished"),
}
return {
text = status_text[to_status],
id = to_status, -- used by covermenu
enabled = current_status ~= to_status,
callback = function()
filemanagerutil.setStatus(file, to_status)
caller_callback()
end,
}
end
local status = filemanagerutil.getStatus(file)
return {
filemanagerutil.genStatusButton("reading", current_status, file, caller_callback),
filemanagerutil.genStatusButton("abandoned", current_status, file, caller_callback),
filemanagerutil.genStatusButton("complete", current_status, file, caller_callback),
genStatusButton("reading", status, file, caller_callback),
genStatusButton("abandoned", status, file, caller_callback),
genStatusButton("complete", status, file, caller_callback),
}
end
-- Generate a "Reset settings" file dialog button
function filemanagerutil.genResetSettingsButton(file, currently_opened_file, caller_callback)
return {
text = _("Reset"),
id = "reset", -- used by covermenu
enabled = file ~= currently_opened_file and DocSettings:hasSidecarFile(util.realpath(file)),
callback = function()
UIManager:show(ConfirmBox:new{
text = T(_("Reset this document?\n\n%1\n\nAll document progress, settings, bookmarks, highlights, and notes will be permanently lost."),
BD.filepath(file)),
ok_text = _("Reset"),
ok_callback = function()
filemanagerutil.purgeSettings(file)
require("readhistory"):fileSettingsPurged(file)
caller_callback()
end,
})
end,
}
end

@ -330,7 +330,7 @@ function CoverMenu:updateItems(select_number)
}
-- Fudge the "Reset settings" button callback to also trash the cover_info_cache
local button = self.file_dialog.button_table:getButtonById("reset_settings")
local button = self.file_dialog.button_table:getButtonById("reset")
local orig_purge_callback = button.callback
button.callback = function()
-- Wipe the cache
@ -507,7 +507,7 @@ function CoverMenu:onHistoryMenuHold(item)
}
-- Fudge the "Reset settings" button callback to also trash the cover_info_cache
local button = self.histfile_dialog.button_table:getButtonById("reset_settings")
local button = self.histfile_dialog.button_table:getButtonById("reset")
local orig_purge_callback = button.callback
button.callback = function()
-- Wipe the cache
@ -682,7 +682,7 @@ function CoverMenu:onCollectionsMenuHold(item)
}
-- Fudge the "Reset settings" button callback to also trash the cover_info_cache
local button = self.collfile_dialog.button_table:getButtonById("reset_settings")
local button = self.collfile_dialog.button_table:getButtonById("reset")
local orig_purge_callback = button.callback
button.callback = function()
-- Wipe the cache

Loading…
Cancel
Save