[feat] Implement fulltext search direction (#5283)

Closes <https://github.com/koreader/koreader/issues/5054>.
pull/5285/head
Frans de Jonge 5 years ago committed by GitHub
parent ac16c8d547
commit f6270278aa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -30,15 +30,36 @@ end
function ReaderSearch:onShowFulltextSearchInput() function ReaderSearch:onShowFulltextSearchInput()
self:onInput{ self:onInput{
title = _("Enter text to search for"), title = _("Enter text to search for"),
ok_text = _("Search all text"),
type = "text", type = "text",
callback = function(input) buttons = {
self:onShowSearchDialog(input) {
end, {
text = _("Cancel"),
callback = function()
self:closeInputDialog()
end,
},
{
text = "",
callback = function()
self:onShowSearchDialog(self.input_dialog:getInputText(), 1)
self:closeInputDialog()
end,
},
{
text = "",
is_enter_default = true,
callback = function()
self:onShowSearchDialog(self.input_dialog:getInputText(), 0)
self:closeInputDialog()
end,
},
},
},
} }
end end
function ReaderSearch:onShowSearchDialog(text) function ReaderSearch:onShowSearchDialog(text, direction)
local neglect_current_location = false local neglect_current_location = false
local current_page local current_page
local do_search = function(search_func, _text, param) local do_search = function(search_func, _text, param)
@ -122,19 +143,19 @@ function ReaderSearch:onShowSearchDialog(text)
buttons = { buttons = {
{ {
{ {
text = "|<", text = "▕◁",
callback = do_search(self.searchFromStart, text), callback = do_search(self.searchFromStart, text),
}, },
{ {
text = "<", text = "",
callback = do_search(self.searchNext, text, 1), callback = do_search(self.searchNext, text, 1),
}, },
{ {
text = ">", text = "",
callback = do_search(self.searchNext, text, 0), callback = do_search(self.searchNext, text, 0),
}, },
{ {
text = ">|", text = "▷▏",
callback = do_search(self.searchFromEnd, text), callback = do_search(self.searchFromEnd, text),
}, },
} }
@ -145,7 +166,7 @@ function ReaderSearch:onShowSearchDialog(text)
UIManager:setDirty(self.dialog, "ui") UIManager:setDirty(self.dialog, "ui")
end, end,
} }
do_search(self.searchFromCurrent, text, 0)() do_search(self.searchFromCurrent, text, direction)()
UIManager:show(self.search_dialog) UIManager:show(self.search_dialog)
--- @todo regional --- @todo regional
UIManager:setDirty(self.dialog, "partial") UIManager:setDirty(self.dialog, "partial")

Loading…
Cancel
Save