Cedit: Improve search panel (#313)

Улучшения для Cedit в Панели поиска:
- Добавлен поиск следующего фрагмента текста по нажатию Enter
- Добавлен обратный переход по полям ввода в Панели поиска по Shift-Tab

Co-authored-by: Igor Shutrov <igor@shutrov.ru>
Reviewed-on: #313
Reviewed-by: Burer <burer@noreply.localhost>
Co-authored-by: Igor Shutrov <kolibridev@inbox.ru>
Co-committed-by: Igor Shutrov <kolibridev@inbox.ru>
This commit is contained in:
2026-01-18 16:28:46 +00:00
committed by Burer
parent e8f322ece8
commit 512dc28549
2 changed files with 30 additions and 4 deletions

View File

@@ -47,3 +47,9 @@
перемещение по тексту: перемещение по тексту:
(ctrl+)Home, (ctrl+)End, (ctrl+)PageUp, (ctrl+)PageDown (ctrl+)Home, (ctrl+)End, (ctrl+)PageUp, (ctrl+)PageDown
ctrl+Left, ctrl+Right ctrl+Left, ctrl+Right
перемещение в панели поиска:
Tab к следующему полю ввода
Shift-Tab к предыдущему полю ввода
Enter поиск следующего вхождения

View File

@@ -28,7 +28,7 @@ IMPORT
RW, Ini, EB := EditBox, Tabs, Toolbar, SB := StatusBar; RW, Ini, EB := EditBox, Tabs, Toolbar, SB := StatusBar;
CONST CONST
HEADER = "CEdit (30-apr-2025)"; HEADER = "CEdit (11-jan-2026)";
ShellFilter = ""; ShellFilter = "";
EditFilter = "sh|inc|txt|asm|ob07|c|cpp|h|pas|pp|lua|ini|json"; EditFilter = "sh|inc|txt|asm|ob07|c|cpp|h|pas|pp|lua|ini|json";
@@ -1750,7 +1750,15 @@ BEGIN
ELSE ELSE
IF EditBox_Focus(FindEdit) THEN IF EditBox_Focus(FindEdit) THEN
IF keyCode = 15 THEN (* Tab *) IF keyCode = 15 THEN (* Tab *)
SetFocus(ReplaceEdit, TRUE) IF shift THEN
SetFocus(GotoEdit, TRUE)
ELSE
SetFocus(ReplaceEdit, TRUE)
END
ELSIF keyCode = 28 THEN (* Enter *)
IF searchOpened & (searchText # "") THEN
notFound := ~T.findNext(text, BKW.value)
END
ELSE ELSE
EB.key(FindEdit, key); EB.key(FindEdit, key);
EditBox_Get(FindEdit, new_searchText); EditBox_Get(FindEdit, new_searchText);
@@ -1761,14 +1769,26 @@ BEGIN
END END
ELSIF EditBox_Focus(ReplaceEdit) THEN ELSIF EditBox_Focus(ReplaceEdit) THEN
IF keyCode = 15 THEN (* Tab *) IF keyCode = 15 THEN (* Tab *)
SetFocus(GotoEdit, TRUE) IF shift THEN
SetFocus(FindEdit, TRUE)
ELSE
SetFocus(GotoEdit, TRUE)
END
ELSIF keyCode = 28 THEN (* Enter *)
IF searchOpened & (searchText # "") THEN
notFound := ~T.findNext(text, BKW.value)
END
ELSE ELSE
EB.key(ReplaceEdit, key); EB.key(ReplaceEdit, key);
EditBox_Get(ReplaceEdit, replaceText) EditBox_Get(ReplaceEdit, replaceText)
END END
ELSIF EditBox_Focus(GotoEdit) THEN ELSIF EditBox_Focus(GotoEdit) THEN
IF keyCode = 15 THEN (* Tab *) IF keyCode = 15 THEN (* Tab *)
SetFocus(FindEdit, TRUE) IF shift THEN
SetFocus(ReplaceEdit, TRUE)
ELSE
SetFocus(FindEdit, TRUE)
END
ELSE ELSE
IF (key DIV 256) MOD 256 = 13 THEN IF (key DIV 256) MOD 256 = 13 THEN
goto goto