[UX] Gesture manager: add action - file search (#4720)

Also makes it callable from the reader.

Fixes #4717.
pull/4721/head
Frans de Jonge 5 years ago committed by GitHub
parent bb3f49a566
commit 2ba480b41d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -10,6 +10,7 @@ local Event = require("ui/event")
local FileChooser = require("ui/widget/filechooser")
local FileManagerBookInfo = require("apps/filemanager/filemanagerbookinfo")
local FileManagerConverter = require("apps/filemanager/filemanagerconverter")
local FileManagerFileSearcher = require("apps/filemanager/filemanagerfilesearcher")
local FileManagerHistory = require("apps/filemanager/filemanagerhistory")
local FileManagerMenu = require("apps/filemanager/filemanagermenu")
local FileManagerShortcuts = require("apps/filemanager/filemanagershortcuts")
@ -343,6 +344,7 @@ function FileManager:init()
table.insert(self, FileManagerHistory:new{
ui = self,
})
table.insert(self, FileManagerFileSearcher:new{ ui = self })
table.insert(self, ReaderDictionary:new{ ui = self })
table.insert(self, ReaderWikipedia:new{ ui = self })
table.insert(self, ReaderDeviceStatus:new{ ui = self })

@ -102,7 +102,7 @@ function FileSearcher:close()
end
end
function FileSearcher:showSearch(search_path)
function FileSearcher:onShowFileSearch(search_path)
local dummy = self.search_value
local enabled_search_home_dir = true
if not G_reader_settings:readSetting("home_dir") then

@ -2,7 +2,7 @@ local CenterContainer = require("ui/widget/container/centercontainer")
local CloudStorage = require("apps/cloudstorage/cloudstorage")
local ConfirmBox = require("ui/widget/confirmbox")
local Device = require("device")
local FileSearcher = require("apps/filemanager/filemanagerfilesearcher")
local Event = require("ui/event")
local InputContainer = require("ui/widget/container/inputcontainer")
local PluginLoader = require("pluginloader")
local Search = require("apps/filemanager/filemanagersearch")
@ -287,7 +287,7 @@ function FileManagerMenu:setUpdateItemTable()
self.menu_items.find_file = {
text = _("Find a file"),
callback = function()
FileSearcher:showSearch(self.ui.file_chooser.path)
self.ui:handleEvent(Event:new("ShowFileSearch", self.ui.file_chooser.path))
end
}

@ -44,6 +44,7 @@ local action_strings = {
dictionary_lookup = _("Dictionary lookup"),
wikipedia_lookup = _("Wikipedia lookup"),
fulltext_search = _("Fulltext search"),
file_search = _("File search"),
full_refresh = _("Full screen refresh"),
night_mode = _("Night mode"),
@ -285,7 +286,8 @@ function ReaderGesture:buildMenu(ges, default)
{"dictionary_lookup", true},
{"wikipedia_lookup", true, true},
{"fulltext_search", not self.is_docless, true},
{"fulltext_search", not self.is_docless},
{"file_search", true, true},
{"full_refresh", true},
{"night_mode", true},
@ -559,6 +561,13 @@ function ReaderGesture:gestureAction(action, ges)
elseif action == "filemanager" then
self.ui:onClose()
self.ui:showFileManager()
elseif action == "file_search" then
if self.ges_mode == "gesture_fm" then
self.ui:handleEvent(Event:new("ShowFileSearch", self.ui.file_chooser.path))
else
local last_dir = self.ui:getLastDirFile()
self.ui:handleEvent(Event:new("ShowFileSearch", last_dir))
end
elseif action == "folder_up" then
self.ui.file_chooser:changeToPath(string.format("%s/..", self.ui.file_chooser.path))
elseif action == "open_previous_document" then

@ -12,6 +12,7 @@ local DocumentRegistry = require("document/documentregistry")
local Event = require("ui/event")
local FileManagerBookInfo = require("apps/filemanager/filemanagerbookinfo")
local FileManagerHistory = require("apps/filemanager/filemanagerhistory")
local FileManagerFileSearcher = require("apps/filemanager/filemanagerfilesearcher")
local InfoMessage = require("ui/widget/infomessage")
local InputContainer = require("ui/widget/container/inputcontainer")
local InputDialog = require("ui/widget/inputdialog")
@ -330,6 +331,11 @@ function ReaderUI:init()
document = self.document,
view = self.view,
})
-- file searcher
self:registerModule("filesearcher", FileManagerFileSearcher:new{
dialog = self.dialog,
ui = self,
})
-- history view
self:registerModule("history", FileManagerHistory:new{
dialog = self.dialog,
@ -390,8 +396,7 @@ function ReaderUI:init()
self.postReaderCallback = nil
end
function ReaderUI:showFileManager()
local FileManager = require("apps/filemanager/filemanager")
function ReaderUI:getLastDirFile()
local QuickStart = require("ui/quickstart")
local last_dir
local last_file = G_reader_settings:readSetting("lastfile")
@ -399,6 +404,14 @@ function ReaderUI:showFileManager()
if last_file and last_file ~= QuickStart.quickstart_filename then
last_dir = last_file:match("(.*)/")
end
return last_dir, last_file
end
function ReaderUI:showFileManager()
local FileManager = require("apps/filemanager/filemanager")
local last_dir, last_file = self:getLastDirFile()
if FileManager.instance then
FileManager.instance:reinit(last_dir, last_file)
else

Loading…
Cancel
Save