main.ml: add command based search
This commit is contained in:
parent
1d67679656
commit
684cdf009b
16
main.ml
16
main.ml
|
@ -1013,6 +1013,12 @@ let getpassword () =
|
|||
then (adderrmsg "askpass" "ask password program not set"; E.s)
|
||||
else getcmdoutput (adderrfmt passcmd "failed to obrain password: %s") passcmd
|
||||
|
||||
let getsearchquery () =
|
||||
let searchcmd = getenvdef "LLPP_SEARCH" "llpp-search" in
|
||||
if emptystr searchcmd
|
||||
then (adderrmsg "search" "search program not set"; E.s)
|
||||
else getcmdoutput (adderrfmt searchcmd "failed to obrain query: %s") searchcmd
|
||||
|
||||
let pgoto opaque pageno x y =
|
||||
let pdimno = getpdimno pageno in
|
||||
let x, y = Ffi.project opaque pageno pdimno x y in
|
||||
|
@ -3239,7 +3245,7 @@ let viewkeyboard key mask =
|
|||
S.text := E.s;
|
||||
Hashtbl.iter (fun _ opaque -> Ffi.clearmark opaque) S.pagemap;
|
||||
Glutils.postRedisplay "dehighlight";
|
||||
| Ascii (('/' | '?') as c) ->
|
||||
| Ascii (('?') as c) ->
|
||||
let ondone isforw s =
|
||||
cbput !S.hists.pat s;
|
||||
S.searchpattern := s;
|
||||
|
@ -3247,6 +3253,14 @@ let viewkeyboard key mask =
|
|||
in
|
||||
enttext (String.make 1 c, E.s, Some (onhist !S.hists.pat),
|
||||
textentry, ondone (c = '/'), true)
|
||||
| Ascii '/' ->
|
||||
let query = getsearchquery() in
|
||||
if nonemptystr query
|
||||
then (
|
||||
cbput !S.hists.pat query;
|
||||
S.searchpattern := query;
|
||||
search query true
|
||||
)
|
||||
| Ascii '+' | Ascii '=' when ctrl ->
|
||||
let incr = if conf.zoom +. 0.01 > 0.1 then 0.1 else 0.01 in
|
||||
pivotzoom (conf.zoom +. incr)
|
||||
|
|
Loading…
Reference in New Issue