mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-09-28 11:17:46 +00:00
UP and DOWN arrows invoke search history.
- UP and DOWN arrow keys invoke search history in Find and Change dialogs. - Fix idesearchedbox$ crashing when no search history is found.
This commit is contained in:
parent
4e0f1c9a9b
commit
59eb5b234c
1 changed files with 76 additions and 3 deletions
|
@ -4262,7 +4262,7 @@ END IF
|
||||||
END SUB
|
END SUB
|
||||||
|
|
||||||
FUNCTION idechange$
|
FUNCTION idechange$
|
||||||
|
REDIM SearchHistory(0) AS STRING
|
||||||
|
|
||||||
'-------- generic dialog box header --------
|
'-------- generic dialog box header --------
|
||||||
PCOPY 0, 2
|
PCOPY 0, 2
|
||||||
|
@ -4294,6 +4294,23 @@ IF a2$ = "" THEN
|
||||||
a2$ = idefindtext
|
a2$ = idefindtext
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
'retrieve search history
|
||||||
|
ln = 0
|
||||||
|
fh = FREEFILE
|
||||||
|
OPEN ".\internal\temp\searched.bin" FOR BINARY AS #fh: a$ = SPACE$(LOF(fh)): GET #fh, , a$
|
||||||
|
CLOSE #fh
|
||||||
|
a$ = RIGHT$(a$, LEN(a$) - 2)
|
||||||
|
DO WHILE LEN(a$)
|
||||||
|
ai = INSTR(a$, CRLF)
|
||||||
|
IF ai THEN
|
||||||
|
f$ = LEFT$(a$, ai - 1): IF ai = LEN(a$) - 1 THEN a$ = "" ELSE a$ = RIGHT$(a$, LEN(a$) - ai - 3)
|
||||||
|
ln = ln + 1
|
||||||
|
REDIM _PRESERVE SearchHistory(1 to ln)
|
||||||
|
SearchHistory(ln) = f$
|
||||||
|
END IF
|
||||||
|
LOOP
|
||||||
|
ln = 0
|
||||||
|
|
||||||
i = 0
|
i = 0
|
||||||
idepar p, 60, 12, "Change"
|
idepar p, 60, 12, "Change"
|
||||||
i = i + 1
|
i = i + 1
|
||||||
|
@ -4425,8 +4442,25 @@ DO 'main loop
|
||||||
EXIT FUNCTION
|
EXIT FUNCTION
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
if ubound(SearchHistory) > 0 then
|
||||||
|
IF K$ = CHR$(0) + CHR$(72) AND focus = 1 THEN 'Up
|
||||||
|
IF ln < ubound(SearchHistory) THEN
|
||||||
|
ln = ln + 1
|
||||||
|
END IF
|
||||||
|
idetxt(o(1).txt) = SearchHistory(ln)
|
||||||
|
o(1).issel = -1: o(1).sx1 = 0: o(1).v1 = len(idetxt(o(1).txt))
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF K$ = CHR$(0) + CHR$(80) AND focus = 1 THEN 'Down
|
||||||
|
IF ln > 1 THEN
|
||||||
|
ln = ln - 1
|
||||||
|
ELSE
|
||||||
|
ln = 1
|
||||||
|
END IF
|
||||||
|
idetxt(o(1).txt) = SearchHistory(ln)
|
||||||
|
o(1).issel = -1: o(1).sx1 = 0: o(1).v1 = len(idetxt(o(1).txt))
|
||||||
|
END IF
|
||||||
|
end if
|
||||||
|
|
||||||
IF focus = 7 AND info <> 0 THEN 'change all
|
IF focus = 7 AND info <> 0 THEN 'change all
|
||||||
idefindcasesens = o(3).sel
|
idefindcasesens = o(3).sel
|
||||||
|
@ -5208,7 +5242,7 @@ END FUNCTION
|
||||||
|
|
||||||
FUNCTION idefind$
|
FUNCTION idefind$
|
||||||
|
|
||||||
|
REDIM SearchHistory(0) AS STRING
|
||||||
'-------- generic dialog box header --------
|
'-------- generic dialog box header --------
|
||||||
PCOPY 0, 2
|
PCOPY 0, 2
|
||||||
PCOPY 0, 1
|
PCOPY 0, 1
|
||||||
|
@ -5239,6 +5273,22 @@ IF a2$ = "" THEN
|
||||||
a2$ = idefindtext
|
a2$ = idefindtext
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
'retrieve search history
|
||||||
|
ln = 0
|
||||||
|
fh = FREEFILE
|
||||||
|
OPEN ".\internal\temp\searched.bin" FOR BINARY AS #fh: a$ = SPACE$(LOF(fh)): GET #fh, , a$
|
||||||
|
CLOSE #fh
|
||||||
|
a$ = RIGHT$(a$, LEN(a$) - 2)
|
||||||
|
DO WHILE LEN(a$)
|
||||||
|
ai = INSTR(a$, CRLF)
|
||||||
|
IF ai THEN
|
||||||
|
f$ = LEFT$(a$, ai - 1): IF ai = LEN(a$) - 1 THEN a$ = "" ELSE a$ = RIGHT$(a$, LEN(a$) - ai - 3)
|
||||||
|
ln = ln + 1
|
||||||
|
REDIM _PRESERVE SearchHistory(1 to ln)
|
||||||
|
SearchHistory(ln) = f$
|
||||||
|
END IF
|
||||||
|
LOOP
|
||||||
|
ln = 0
|
||||||
|
|
||||||
i = 0
|
i = 0
|
||||||
idepar p, 60, 9, "Find"
|
idepar p, 60, 9, "Find"
|
||||||
|
@ -5370,6 +5420,25 @@ DO 'main loop
|
||||||
EXIT FUNCTION
|
EXIT FUNCTION
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
if ubound(SearchHistory) > 0 then
|
||||||
|
IF K$ = CHR$(0) + CHR$(72) AND focus = 1 THEN 'Up
|
||||||
|
IF ln < ubound(SearchHistory) THEN
|
||||||
|
ln = ln + 1
|
||||||
|
END IF
|
||||||
|
idetxt(o(1).txt) = SearchHistory(ln)
|
||||||
|
o(1).issel = -1: o(1).sx1 = 0: o(1).v1 = len(idetxt(o(1).txt))
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF K$ = CHR$(0) + CHR$(80) AND focus = 1 THEN 'Down
|
||||||
|
IF ln > 1 THEN
|
||||||
|
ln = ln - 1
|
||||||
|
ELSE
|
||||||
|
ln = 1
|
||||||
|
END IF
|
||||||
|
idetxt(o(1).txt) = SearchHistory(ln)
|
||||||
|
o(1).issel = -1: o(1).sx1 = 0: o(1).v1 = len(idetxt(o(1).txt))
|
||||||
|
END IF
|
||||||
|
end if
|
||||||
'end of custom controls
|
'end of custom controls
|
||||||
|
|
||||||
|
|
||||||
|
@ -9831,6 +9900,10 @@ DO WHILE LEN(a$)
|
||||||
LOOP
|
LOOP
|
||||||
CLOSE #fh
|
CLOSE #fh
|
||||||
|
|
||||||
|
if ln = 0 then
|
||||||
|
l$ = sep
|
||||||
|
end if
|
||||||
|
|
||||||
'72,19
|
'72,19
|
||||||
|
|
||||||
h = idewy + idesubwindow - 9
|
h = idewy + idesubwindow - 9
|
||||||
|
|
Loading…
Reference in a new issue