You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koreader/frontend/ui/widget/pathchooser.lua

54 lines
1.5 KiB
Lua

local ButtonDialog = require("ui/widget/buttondialog")
local FileChooser = require("ui/widget/filechooser")
local UIManager = require("ui/uimanager")
local util = require("ffi/util")
local _ = require("gettext")
local PathChooser = FileChooser:extend{
title = _("Choose Path"),
no_title = false,
is_popout = false,
is_borderless = true,
show_filesize = false,
file_filter = function() return false end, -- filter out regular files
}
function PathChooser:onMenuSelect(item)
self.path = util.realpath(item.path)
local sub_table = self:genItemTableFromPath(self.path)
-- if sub table only have one entry(itself) we do nothing
if #sub_table > 1 then
self:changeToPath(item.path)
end
return true
end
function PathChooser:onMenuHold(item)
local onConfirm = self.onConfirm
self.button_dialog = ButtonDialog:new{
buttons = {
{
{
text = _("Confirm"),
callback = function()
if onConfirm then onConfirm(item.path) end
UIManager:close(self.button_dialog)
UIManager:close(self)
end,
},
{
text = _("Cancel"),
callback = function()
UIManager:close(self.button_dialog)
UIManager:close(self)
end,
},
},
},
}
UIManager:show(self.button_dialog)
return true
end
return PathChooser