From 905b315c812254964af58950a4232128f9e0823c Mon Sep 17 00:00:00 2001 From: chrox Date: Tue, 19 Feb 2013 21:30:35 +0800 Subject: [PATCH] hide certain directories in FileManager The exclude pattern should be editable by users in the future. --- frontend/ui/filechooser.lua | 6 ++++-- reader.lua | 9 ++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/frontend/ui/filechooser.lua b/frontend/ui/filechooser.lua index 8be30e3cb..2dbd5ca99 100644 --- a/frontend/ui/filechooser.lua +++ b/frontend/ui/filechooser.lua @@ -22,9 +22,11 @@ function FileChooser:changeToPath(path) local filename = self.path.."/"..f local filemode = lfs.attributes(filename, "mode") if filemode == "directory" and f ~= "." and f~=".." then - table.insert(dirs, f) + if self.dir_filter(filename) then + table.insert(dirs, f) + end elseif filemode == "file" then - if self.filter(filename) then + if self.file_filter(filename) then table.insert(files, f) end end diff --git a/reader.lua b/reader.lua index 78985737d..f49a7912e 100755 --- a/reader.lua +++ b/reader.lua @@ -78,6 +78,7 @@ function showReader(file, pass) end function showHomePage(path) + local exclude_dirs = {"%.sdr$"} local FileManager = FileChooser:new{ title = "FileManager", path = path, @@ -85,7 +86,13 @@ function showHomePage(path) height = Screen:getHeight(), is_borderless = true, has_close_button = false, - filter = function(filename) + dir_filter = function(dirname) + for _, pattern in ipairs(exclude_dirs) do + if dirname:match(pattern) then return end + end + return true + end, + file_filter = function(filename) if DocumentRegistry:getProvider(filename) then return true end