Mercurial Hosting > editor
changeset 70:f4e393a13d59 default tip
no find toggle
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 10 Jun 2025 22:34:24 -0600 |
parents | 3867e9e1b94c |
children | |
files | src/luan_editor/find.luan src/luan_editor/menu.luan |
diffstat | 2 files changed, 29 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/src/luan_editor/find.luan Tue Jun 10 20:47:20 2025 -0600 +++ b/src/luan_editor/find.luan Tue Jun 10 22:34:24 2025 -0600 @@ -189,7 +189,7 @@ action_listener = replace_match } new_panel{ - constraints = "span,wrap" + constraints = "span,grow,wrap" layout = new_mig_layout("insets 0,gap 16px") children = { regex_check_box @@ -199,22 +199,28 @@ browse("https://www.reactionary.software/learn.html#regex") end } + new_button{ + constraints = "pushx, align right" + text = "Close" + action_listener = function(_) + window.hide_find_panel() + end + } } } } } - function window.show_find_panel(is_visible) - find_panel.is_visible = is_visible - if is_visible then - find_field.request_focus_in_window() - find_field.select_all() - else - text_area.clear_hightlights() - end + function window.show_find_panel() + find_panel.is_visible = true + find_field.request_focus_in_window() + find_field.select_all() + end + function window.hide_find_panel() + find_panel.is_visible = false + text_area.clear_hightlights() end function window.find_case_insensitive(_) - find_panel.visible = true - window.find_menu_item.is_selected = true + find_panel.is_visible = true regex_check_box.is_selected = true find_field.text = "(?i)\Q\E" find_field.set_selection(7) @@ -222,8 +228,7 @@ status_bar.text = [[Put search text between "\Q" and "\E"]] end function window.tabs_to_spaces(_) - find_panel.visible = true - window.find_menu_item.is_selected = true + find_panel.is_visible = true regex_check_box.is_selected = true find_field.text = [[(?m)^(\t*)\t]] local spaces = repeated( " ", text_area.tab_size ) @@ -231,8 +236,7 @@ status_bar.text = [[Do "Replace All" until 0 replacements]] end function window.spaces_to_tabs(_) - find_panel.visible = true - window.find_menu_item.is_selected = true + find_panel.is_visible = true regex_check_box.is_selected = true local tab_size = text_area.tab_size find_field.text = `%>(?m)^(( {<%=tab_size%>})*) {<%=tab_size%>}<%`
--- a/src/luan_editor/menu.luan Tue Jun 10 20:47:20 2025 -0600 +++ b/src/luan_editor/menu.luan Tue Jun 10 22:34:24 2025 -0600 @@ -61,15 +61,6 @@ update_undo_redo() document.add_undo_listener(update_undo_redo) - local find_menu_item = new_check_box_menu_item{ - text = "Find and Replace" - accelerator = "F" - action_listener = function(event) - window.show_find_panel(event.source.state) - end - } - window.find_menu_item = find_menu_item - local menu_bar = new_menu_bar{ menus = { new_menu{ @@ -164,7 +155,16 @@ new_menu{ text = "Find" menu_items = { - find_menu_item + new_menu_item{ + text = "Find and Replace" + accelerator = "F" + action_listener = action_listener(window.show_find_panel) + } + new_menu_item{ + text = "Close Find and Replace" + accelerator = "shift F" + action_listener = action_listener(window.hide_find_panel) + } new_menu_item{ text = "Find Case Insensitive" action_listener = window.find_case_insensitive