1
0
mirror of https://github.com/godotengine/godot.git synced 2025-12-02 16:48:55 +00:00

Merge pull request #112728 from jinyangcruise/fix_find_in_files_auto_search_when_changing_language

Fix find in files auto search when changing theme
This commit is contained in:
Thaddeus Crews
2025-11-17 19:36:18 -06:00
2 changed files with 34 additions and 9 deletions

View File

@@ -865,15 +865,7 @@ void FindInFilesPanel::stop_search() {
void FindInFilesPanel::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_THEME_CHANGED: {
_search_text_label->add_theme_font_override(SceneStringName(font), get_theme_font(SNAME("source"), EditorStringName(EditorFonts)));
_search_text_label->add_theme_font_size_override(SceneStringName(font_size), get_theme_font_size(SNAME("source_size"), EditorStringName(EditorFonts)));
_results_display->add_theme_font_override(SceneStringName(font), get_theme_font(SNAME("source"), EditorStringName(EditorFonts)));
_results_display->add_theme_font_size_override(SceneStringName(font_size), get_theme_font_size(SNAME("source_size"), EditorStringName(EditorFonts)));
// Rebuild search tree.
if (!_finder->get_search_text().is_empty()) {
start_search();
}
_on_theme_changed();
} break;
case NOTIFICATION_TRANSLATION_CHANGED: {
update_matches_text();
@@ -965,6 +957,38 @@ void FindInFilesPanel::_on_result_found(const String &fpath, int line_number, in
}
}
void FindInFilesPanel::_on_theme_changed() {
_results_display->add_theme_font_override(SceneStringName(font), get_theme_font(SNAME("source"), EditorStringName(EditorFonts)));
_results_display->add_theme_font_size_override(SceneStringName(font_size), get_theme_font_size(SNAME("source_size"), EditorStringName(EditorFonts)));
Color file_item_color = _results_display->get_theme_color(SceneStringName(font_color)) * Color(1, 1, 1, 0.67);
Ref<Texture2D> remove_texture = get_editor_theme_icon(SNAME("Close"));
Ref<Texture2D> replace_texture = get_editor_theme_icon(SNAME("ReplaceText"));
TreeItem *file_item = _results_display->get_root()->get_first_child();
while (file_item) {
file_item->set_custom_color(0, file_item_color);
if (_with_replace) {
file_item->set_button(0, file_item->get_button_by_id(0, FIND_BUTTON_REPLACE), replace_texture);
}
file_item->set_button(0, file_item->get_button_by_id(0, FIND_BUTTON_REMOVE), remove_texture);
TreeItem *result_item = file_item->get_first_child();
while (result_item) {
if (_with_replace) {
result_item->set_button(1, result_item->get_button_by_id(1, FIND_BUTTON_REPLACE), replace_texture);
result_item->set_button(1, result_item->get_button_by_id(1, FIND_BUTTON_REMOVE), remove_texture);
} else {
result_item->set_button(0, result_item->get_button_by_id(0, FIND_BUTTON_REMOVE), remove_texture);
}
result_item = result_item->get_next();
}
file_item = file_item->get_next();
}
}
void FindInFilesPanel::draw_result_text(Object *item_obj, Rect2 rect) {
TreeItem *item = Object::cast_to<TreeItem>(item_obj);
if (!item) {