From 1173ca7b2669f3ed6f37231ef7512a52029bc126 Mon Sep 17 00:00:00 2001 From: Igor Shutrov Date: Sun, 18 Jan 2026 16:28:46 +0000 Subject: [PATCH] Cedit: Improve search panel (#313) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Улучшения для Cedit в Панели поиска: - Добавлен поиск следующего фрагмента текста по нажатию Enter - Добавлен обратный переход по полям ввода в Панели поиска по Shift-Tab Co-authored-by: Igor Shutrov Reviewed-on: https://git.kolibrios.org/KolibriOS/kolibrios/pulls/313 Reviewed-by: Burer Co-authored-by: Igor Shutrov Co-committed-by: Igor Shutrov --- programs/develop/cedit/SHORTCUT.TXT | 6 ++++++ programs/develop/cedit/SRC/CEdit.ob07 | 28 +++++++++++++++++++++++---- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/programs/develop/cedit/SHORTCUT.TXT b/programs/develop/cedit/SHORTCUT.TXT index 0bff53360..a26703426 100644 --- a/programs/develop/cedit/SHORTCUT.TXT +++ b/programs/develop/cedit/SHORTCUT.TXT @@ -47,3 +47,9 @@ перемещение по тексту: (ctrl+)Home, (ctrl+)End, (ctrl+)PageUp, (ctrl+)PageDown ctrl+Left, ctrl+Right + + перемещение в панели поиска: + Tab к следующему полю ввода + Shift-Tab к предыдущему полю ввода + Enter поиск следующего вхождения + diff --git a/programs/develop/cedit/SRC/CEdit.ob07 b/programs/develop/cedit/SRC/CEdit.ob07 index 9b5b3ae12..fc775cc28 100644 --- a/programs/develop/cedit/SRC/CEdit.ob07 +++ b/programs/develop/cedit/SRC/CEdit.ob07 @@ -28,7 +28,7 @@ IMPORT RW, Ini, EB := EditBox, Tabs, Toolbar, SB := StatusBar; CONST - HEADER = "CEdit (30-apr-2025)"; + HEADER = "CEdit (11-jan-2026)"; ShellFilter = ""; EditFilter = "sh|inc|txt|asm|ob07|c|cpp|h|pas|pp|lua|ini|json"; @@ -1750,7 +1750,15 @@ BEGIN ELSE IF EditBox_Focus(FindEdit) THEN 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 EB.key(FindEdit, key); EditBox_Get(FindEdit, new_searchText); @@ -1761,14 +1769,26 @@ BEGIN END ELSIF EditBox_Focus(ReplaceEdit) THEN 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 EB.key(ReplaceEdit, key); EditBox_Get(ReplaceEdit, replaceText) END ELSIF EditBox_Focus(GotoEdit) THEN IF keyCode = 15 THEN (* Tab *) - SetFocus(FindEdit, TRUE) + IF shift THEN + SetFocus(ReplaceEdit, TRUE) + ELSE + SetFocus(FindEdit, TRUE) + END ELSE IF (key DIV 256) MOD 256 = 13 THEN goto