local InputContainer = require("ui/widget/container/inputcontainer") local CenterContainer = require("ui/widget/container/centercontainer") local Menu = require("ui/widget/menu") local ButtonDialog = require("ui/widget/buttondialog") local Screen = require("ui/screen") local UIManager = require("ui/uimanager") local DocSettings = require("docsettings") local DEBUG = require("dbg") local _ = require("gettext") local history_dir = "./history/" local FileManagerHistory = InputContainer:extend{ hist_menu_title = _("History"), } function FileManagerHistory:init() self.ui.menu:registerToMainMenu(self) end function FileManagerHistory:onSetDimensions(dimen) self.dimen = dimen end function FileManagerHistory:onMenuHold(item) self.histfile_dialog = ButtonDialog:new{ buttons = { { { text = _("Delete"), callback = function() os.remove(history_dir..item.histfile) self._manager:updateItemTable() UIManager:close(self.histfile_dialog) end, }, }, }, } UIManager:show(self.histfile_dialog) return true end function FileManagerHistory:onShowHist() local menu_container = CenterContainer:new{ dimen = Screen:getSize(), } self.hist_menu = Menu:new{ ui = self.ui, width = Screen:getWidth()-50, height = Screen:getHeight()-50, show_parent = menu_container, onMenuHold = self.onMenuHold, _manager = self, } self:updateItemTable() table.insert(menu_container, self.hist_menu) self.hist_menu.close_callback = function() UIManager:close(menu_container) end UIManager:show(menu_container) return true end function FileManagerHistory:addToMainMenu(tab_item_table) -- insert table to info tab of filemanager menu table.insert(tab_item_table.info, { text = self.hist_menu_title, callback = function() self:onShowHist() end, }) end function FileManagerHistory:updateItemTable() function readHistDir(re) local sorted_files = {} for f in lfs.dir(history_dir) do local path = history_dir..f if lfs.attributes(path, "mode") == "file" then table.insert(sorted_files, {file = f, date = lfs.attributes(path, "modification")}) end end table.sort(sorted_files, function(v1,v2) return v1.date > v2.date end) for _, v in pairs(sorted_files) do table.insert(re, { dir = DocSettings:getPathFromHistory(v.file), name = DocSettings:getNameFromHistory(v.file), histfile = v.file, }) end end self.hist = {} local last_files = {} readHistDir(last_files) for _,v in pairs(last_files) do table.insert(self.hist, { text = v.name, histfile = v.histfile, callback = function() showReaderUI(v.dir .. "/" .. v.name) end }) end self.hist_menu:swithItemTable(self.hist_menu_title, self.hist) end return FileManagerHistory