File search: search in current folder, or home folder (#4093)

pull/4108/head
Robert 6 years ago committed by poire-z
parent d8d0def122
commit 287ab2a20e

@ -1,9 +1,9 @@
local CenterContainer = require("ui/widget/container/centercontainer") local CenterContainer = require("ui/widget/container/centercontainer")
local DocumentRegistry = require("document/documentregistry") local DocumentRegistry = require("document/documentregistry")
local Font = require("ui/font") local Font = require("ui/font")
local InputDialog = require("ui/widget/inputdialog")
local InfoMessage = require("ui/widget/infomessage") local InfoMessage = require("ui/widget/infomessage")
local InputContainer = require("ui/widget/container/inputcontainer") local InputContainer = require("ui/widget/container/inputcontainer")
local InputDialog = require("ui/widget/inputdialog")
local Menu = require("ui/widget/menu") local Menu = require("ui/widget/menu")
local UIManager = require("ui/uimanager") local UIManager = require("ui/uimanager")
local lfs = require("libs/libkoreader-lfs") local lfs = require("libs/libkoreader-lfs")
@ -82,11 +82,6 @@ function FileSearcher:setSearchResults()
self.items = #self.results self.items = #self.results
end end
function FileSearcher:init(search_path)
self.path = search_path or lfs.currentdir()
self:showSearch()
end
function FileSearcher:close() function FileSearcher:close()
if self.search_value then if self.search_value then
UIManager:close(self.search_dialog) UIManager:close(self.search_dialog)
@ -107,11 +102,16 @@ function FileSearcher:close()
end end
end end
function FileSearcher:showSearch() function FileSearcher:showSearch(search_path)
local dummy = self.search_value local dummy = self.search_value
local enabled_search_home_dir = true
if not G_reader_settings:readSetting("home_dir") then
enabled_search_home_dir = false
end
self.search_dialog = InputDialog:new{ self.search_dialog = InputDialog:new{
title = _("Search for books by filename"), title = _("Search for books by filename"),
input = self.search_value, input = self.search_value,
width = Screen:getWidth() * 0.9,
buttons = { buttons = {
{ {
{ {
@ -123,9 +123,24 @@ function FileSearcher:showSearch()
end, end,
}, },
{ {
text = _("Find books"), text = _("Current folder"),
enabled = true, enabled = true,
callback = function() callback = function()
self.path = search_path or lfs.currentdir()
self.search_value = self.search_dialog:getInputText()
if self.search_value == dummy then -- probably DELETE this if/else block
self.use_previous_search_results = true
else
self.use_previous_search_results = false
end
self:close()
end,
},
{
text = _("Home folder"),
enabled = enabled_search_home_dir,
callback = function()
self.path = G_reader_settings:readSetting("home_dir")
self.search_value = self.search_dialog:getInputText() self.search_value = self.search_dialog:getInputText()
if self.search_value == dummy then -- probably DELETE this if/else block if self.search_value == dummy then -- probably DELETE this if/else block
self.use_previous_search_results = true self.use_previous_search_results = true

@ -226,7 +226,7 @@ function FileManagerMenu:setUpdateItemTable()
self.menu_items.find_file = { self.menu_items.find_file = {
text = _("Find a file"), text = _("Find a file"),
callback = function() callback = function()
FileSearcher:init(self.ui.file_chooser.path) FileSearcher:showSearch(self.ui.file_chooser.path)
end end
} }

Loading…
Cancel
Save