Reader menu: adds "Open previous document" (#4056)

* Reader menu: adds "Open previous document"

Allows for quick switching between 2 documents, and keep
symmetry with FileManager menu "Open last document".

* Use "Last:" and "Previous:" when Show filename
This commit is contained in:
poire-z
2018-07-07 13:03:33 +02:00
committed by Frans de Jonge
parent 7175d86d76
commit 8b3432ae76
5 changed files with 47 additions and 2 deletions

View File

@@ -1,4 +1,5 @@
local CenterContainer = require("ui/widget/container/centercontainer")
local ConfirmBox = require("ui/widget/confirmbox")
local Device = require("device")
local Event = require("ui/event")
local InputContainer = require("ui/widget/container/inputcontainer")
@@ -6,8 +7,10 @@ local Screensaver = require("ui/screensaver")
local UIManager = require("ui/uimanager")
local logger = require("logger")
local dbg = require("dbg")
local util = require("util")
local Screen = Device.screen
local _ = require("gettext")
local T = require("ffi/util").template
local ReaderMenu = InputContainer:new{
tab_item_table = nil,
@@ -177,6 +180,39 @@ function ReaderMenu:setUpdateItemTable()
end,
}
local previous_file
local readhistory = require("readhistory")
for i=2, #readhistory.hist do -- skip first one which is current book
if lfs.attributes(readhistory.hist[i].file, "mode") == "file" then
previous_file = readhistory.hist[i].file
break
end
end
self.menu_items.open_previous_document = {
text_func = function()
if not G_reader_settings:isTrue("open_last_menu_show_filename") or not previous_file then
return _("Open previous document")
end
local path, file_name = util.splitFilePathName(previous_file); -- luacheck: no unused
return T(_("Previous: %1"), file_name)
end,
enabled_func = function()
return previous_file ~= nil
end,
callback = function()
self.ui:switchDocument(previous_file)
end,
hold_callback = function()
UIManager:show(ConfirmBox:new{
text = T(_("Would you like to open the previous document: %1?"), previous_file),
ok_text = _("OK"),
ok_callback = function()
self.ui:switchDocument(previous_file)
end,
})
end
}
local order = require("ui/elements/reader_menu_order")
local MenuSorter = require("ui/menusorter")