diff --git a/frontend/apps/filemanager/filemanagermenu.lua b/frontend/apps/filemanager/filemanagermenu.lua index 46d9f232e..859a9994e 100644 --- a/frontend/apps/filemanager/filemanagermenu.lua +++ b/frontend/apps/filemanager/filemanagermenu.lua @@ -124,11 +124,12 @@ function FileManagerMenu:setUpdateItemTable() end }) table.insert(self.tab_item_table.info, { - text = _("Search Books (experimental)"), + text = _("Search books"), callback = function() Search:init() end }) + table.insert(self.tab_item_table.info, Screen:SearchOptions()) end function FileManagerMenu:onShowMenu() diff --git a/frontend/apps/filemanager/filemanagersearch.lua b/frontend/apps/filemanager/filemanagersearch.lua index e13dc8b21..d4c72811d 100644 --- a/frontend/apps/filemanager/filemanagersearch.lua +++ b/frontend/apps/filemanager/filemanagersearch.lua @@ -151,7 +151,7 @@ function Search:find() s=string.sub(s,n,string.len(s)-3) end - s=string.gsub(s,"\\u([a-f0-9][a-f0-9][a-f0-9][a-f0-9])",function(w) return unichar(tonumber(w, 16)) end) -- ' + s=string.gsub(s,"\\u([a-f0-9][a-f0-9][a-f0-9][a-f0-9])",function(w) return unichar(tonumber(w, 16)) end) return s end @@ -188,7 +188,7 @@ function Search:find() if SEARCH_TAGS then dummy = dummy .. self.data[i][self.tags] end if not SEARCH_CASESENSITIVE then dummy = string.upper(dummy) end - if string.find(dummy,upsearch) then + if string.find(dummy,upsearch,nil,true) then i = i + 1 self.data[i] = {"","","","",""} end diff --git a/frontend/ui/device/screen.lua b/frontend/ui/device/screen.lua index 4fa11d37e..c919fc0fe 100644 --- a/frontend/ui/device/screen.lua +++ b/frontend/ui/device/screen.lua @@ -307,5 +307,53 @@ function Screen:getDPIMenuTable() } end +function Screen:SearchOptions() + return { + text = _("Search options"), + sub_item_table = { + { + text = _("Case sensitive"), + checked_func = function() + local search_option = SEARCH_CASESENSITIVE + return search_option + end, + callback = function() SEARCH_CASESENSITIVE = not SEARCH_CASESENSITIVE end + }, + { + text = _("Search title"), + checked_func = function() + local search_option = SEARCH_TITLE + return search_option + end, + callback = function() SEARCH_TITLE = not SEARCH_TITLE end + }, + { + text = _("Search tags"), + checked_func = function() + local search_option = SEARCH_TAGS + return search_option + end, + callback = function() SEARCH_TAGS = not SEARCH_TAGS end + }, + { + text = _("Search series"), + checked_func = function() + local search_option = SEARCH_SERIES + return search_option + end, + callback = function() SEARCH_SERIES = not SEARCH_SERIES end + }, + { + text = _("Search path"), + checked_func = function() + local search_option = SEARCH_PATH + return search_option + end, + callback = function() SEARCH_PATH = not SEARCH_PATH end + }, + } + } +end + return Screen