mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
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)
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user