mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
[UX] Gesture manager: add action - file search (#4720)
Also makes it callable from the reader. Fixes #4717.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user