fix #1034 by refactoring path chooser to a download manager

Now directories visible in the filemanager should also
be visible in the path chooser
pull/1057/head
chrox 10 years ago
parent 7a22c60256
commit 68265336f4

@ -0,0 +1,36 @@
local PathChooser = require("ui/widget/pathchooser")
local UIManager = require("ui/uimanager")
local util = require("ffi/util")
local _ = require("gettext")
local DownloadMgr = {
title = _("Choose download directory"),
onConfirm = function() end,
}
function DownloadMgr:new(o)
local o = o or {}
setmetatable(o, self)
self.__index = self
return o
end
function DownloadMgr:chooseDir()
local lastdir = G_reader_settings:readSetting("lastdir")
local download_dir = G_reader_settings:readSetting("download_dir")
local path_chooser = PathChooser:new{
title = self.title,
path = download_dir and (download_dir .. "/..") or lastdir,
show_hidden = G_reader_settings:readSetting("show_hidden"),
onConfirm = function(path)
-- hack to remove additional parent
if path:sub(-3, -1) == "/.." then
path = path:sub(1, -4)
end
self.onConfirm(util.realpath(path))
end
}
UIManager:show(path_chooser)
end
return DownloadMgr

@ -1,7 +1,6 @@
local MultiInputDialog = require("ui/widget/multiinputdialog")
local ButtonDialog = require("ui/widget/buttondialog")
local InfoMessage = require("ui/widget/infomessage")
local PathChooser = require("ui/widget/pathchooser")
local lfs = require("libs/libkoreader-lfs")
local OPDSParser = require("ui/opdsparser")
local NetworkMgr = require("ui/networkmgr")
@ -456,17 +455,13 @@ function OPDSBrowser:showDownloads(item)
{
text = _("Set download directory"),
callback = function()
local lastdir = G_reader_settings:readSetting("lastdir")
local download_dir = G_reader_settings:readSetting("download_dir")
local path_chooser = PathChooser:new{
require("ui/downloadmgr"):new{
title = _("Choose download directory"),
path = download_dir and (download_dir .. "/..") or lastdir,
onConfirm = function(path)
DEBUG("set download directory to", path)
G_reader_settings:saveSetting("download_dir", path)
end,
}
UIManager:show(path_chooser)
}:chooseDir()
end,
}
})

@ -1,5 +1,4 @@
local InputContainer = require("ui/widget/container/inputcontainer")
local PathChooser = require("ui/widget/pathchooser")
local InfoMessage = require("ui/widget/infomessage")
local UIManager = require("ui/uimanager")
local util = require("ffi/util")
@ -126,19 +125,14 @@ end
function CalibreCompanion:setInboxDir(host, port)
local lastdir = G_reader_settings:readSetting("lastdir") or "."
local calibre_device = self
local path_chooser = PathChooser:new{
require("ui/downloadmgr"):new{
title = _("Choose inbox"),
path = lastdir .. "/..",
onConfirm = function(inbox)
if inbox:sub(-3, -1) == "/.." then
inbox = inbox:sub(1, -4)
end
DEBUG("set inbox directory", inbox)
G_reader_settings:saveSetting("inbox_dir", inbox)
calibre_device:initCalibreMQ(host, port)
end,
}
UIManager:show(path_chooser)
}:chooseDir()
end
function CalibreCompanion:connect()

@ -6,7 +6,6 @@ local FileManager = require("apps/filemanager/filemanager")
local VerticalGroup = require("ui/widget/verticalgroup")
local VerticalSpan = require("ui/widget/verticalspan")
local ButtonDialog = require("ui/widget/buttondialog")
local PathChooser = require("ui/widget/pathchooser")
local InfoMessage = require("ui/widget/infomessage")
local TextWidget = require("ui/widget/textwidget")
local DocSettings = require("docsettings")
@ -235,21 +234,14 @@ end
function ZSync:subscribe()
DEBUG("subscribe documents")
self.received = {}
local lastdir = G_reader_settings:readSetting("lastdir")
local inbox_dir = G_reader_settings:readSetting("inbox_dir")
local zsync = self
local path_chooser = PathChooser:new{
require("ui/downloadmgr"):new{
title = _("Choose inbox"),
path = inbox_dir and (inbox_dir .. "/..") or lastdir,
onConfirm = function(inbox)
if inbox:sub(-3, -1) == "/.." then
inbox = inbox:sub(1, -4)
end
G_reader_settings:saveSetting("inbox_dir", inbox)
zsync:onChooseInbox(inbox)
end,
}
UIManager:show(path_chooser)
}:chooseDir()
end
function ZSync:unsubscribe()

Loading…
Cancel
Save