From 0566df5f2839e2f0f06eaf3d7c8725a21426dd76 Mon Sep 17 00:00:00 2001 From: Frans de Jonge Date: Sat, 25 Feb 2017 15:26:52 +0100 Subject: [PATCH] FileSearcher: also show directory results Fixes #2177 --- .../filemanager/filemanagerfilesearcher.lua | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/frontend/apps/filemanager/filemanagerfilesearcher.lua b/frontend/apps/filemanager/filemanagerfilesearcher.lua index 60b3cb870..0b4e2fa70 100644 --- a/frontend/apps/filemanager/filemanagerfilesearcher.lua +++ b/frontend/apps/filemanager/filemanagerfilesearcher.lua @@ -42,6 +42,7 @@ function FileSearcher:readDir() local attributes = lfs.attributes(fullpath) if attributes.mode == "directory" and f ~= "." and f~=".." then table.insert(new_dirs, fullpath) + table.insert(self.files, {name = f, path = fullpath, attr = attributes}) elseif attributes.mode == "file" and DocumentRegistry:getProvider(fullpath) then table.insert(self.files, {name = f, path = fullpath, attr = attributes}) end @@ -52,6 +53,7 @@ function FileSearcher:readDir() end function FileSearcher:setSearchResults() + local FileManager = require("apps/filemanager/filemanager") local ReaderUI = require("apps/reader/readerui") local keywords = self.search_value --DEBUG("self.files", self.files) @@ -62,12 +64,21 @@ function FileSearcher:setSearchResults() for __,f in pairs(self.files) do DEBUG("f", f) if string.find(string.lower(f.name), string.lower(keywords)) then - f.text = f.name - f.name = nil - f.callback = function() - ReaderUI:showReader(f.path) + if f.attr.mode == "directory" then + f.text = f.name.."/" + f.name = nil + f.callback = function() + FileManager:showFiles(f.path) + end + table.insert(self.results, f) + else + f.text = f.name + f.name = nil + f.callback = function() + ReaderUI:showReader(f.path) + end + table.insert(self.results, f) end - table.insert(self.results, f) end end end