2
0
mirror of https://github.com/koreader/koreader synced 2024-11-13 19:11:25 +00:00
koreader/frontend/ui/downloadmgr.lua

70 lines
1.9 KiB
Lua
Raw Normal View History

2017-05-05 14:04:50 +00:00
--[[--
This module displays a PathChooser widget to choose a download directory.
It can be used as a callback on a button or menu item.
Example:
callback = function()
require("ui/downloadmgr"):new{
title = _("Choose download directory"),
onConfirm = function(path)
logger.dbg("set download directory to", path)
G_reader_settings:saveSetting("download_dir", path)
UIManager:nextTick(function()
-- reinitialize dialog
end)
end,
}:chooseDir()
end
2017-05-05 14:04:50 +00:00
]]
local PathChooser = require("ui/widget/pathchooser")
local UIManager = require("ui/uimanager")
local util = require("ffi/util")
local _ = require("gettext")
local DownloadMgr = {
onConfirm = function() end,
}
2016-02-16 02:08:04 +00:00
function DownloadMgr:new(from_o)
local o = from_o or {}
setmetatable(o, self)
self.__index = self
return o
end
2017-05-05 14:04:50 +00:00
--- Displays a PathChooser widget for picking a (download) directory.
-- @treturn string path chosen by the user
function DownloadMgr:chooseDir(dir)
local path
if dir then
path = dir
else
local lastdir = G_reader_settings:readSetting("lastdir")
local download_dir = G_reader_settings:readSetting("download_dir")
path = download_dir and util.realpath(download_dir .. "/..") or lastdir
end
local path_chooser = PathChooser:new{
select_file = false,
show_files = false,
path = path,
onConfirm = function(dir_path)
self.onConfirm(dir_path)
end
}
UIManager:show(path_chooser)
end
function DownloadMgr:chooseCloudDir()
local cloud_storage = require("apps/cloudstorage/cloudstorage"):new{
item = self.item,
onConfirm = function(dir_path)
self.onConfirm(dir_path)
end,
}
UIManager:show(cloud_storage)
end
return DownloadMgr