From 2dfee0a2fb6dfa50ab94cd227842b6e5832979fa Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Sun, 26 Aug 2012 16:19:51 +0200 Subject: [PATCH] remember last search so it's incremental now --- unireader.lua | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/unireader.lua b/unireader.lua index c12109ed4..7652a41fb 100644 --- a/unireader.lua +++ b/unireader.lua @@ -88,6 +88,8 @@ UniReader = { toc = nil, bbox = {}, -- override getUsedBBox + + last_search = {} } function UniReader:new(o) @@ -1802,6 +1804,16 @@ function UniReader:searchHighLight(search) local max_pageno = self.doc:getPages() local found = 0 + if self.last_search then + Debug("self.last_search",self.last_search) + if self.last_search.pageno == self.pageno + and self.last_search.search == search + then + pageno = pageno + 1 + Debug("continue search for ", search) + end + end + while found == 0 do local t = self:getText(pageno) @@ -1857,6 +1869,11 @@ function UniReader:searchHighLight(search) self:goto(self.pageno) -- show highlights, remove input if found > 0 then showInfoMsgWithDelay( found.." hits '"..search.."' page "..self.pageno, 2000, 1) + self.last_search = { + pageno = self.pageno, + search = search, + hits = found, + } else showInfoMsgWithDelay( "'"..search.."' not found in document", 2000, 1) end @@ -2542,7 +2559,7 @@ function UniReader:addAllCommands() "search and highlight text", function(unireader) local search = InputBox:input(G_height - 100, 100, - "Search:") + "Search:", self.last_search.search ) if search ~= nil and string.len( search ) > 0 then unireader:searchHighLight(search)