Skip to content

Commit 4e8c4bc

Browse files
committed
Merge pull request #112728 from jinyangcruise/fix_find_in_files_auto_search_when_changing_language
Fix find in files auto search when changing theme
2 parents d933313 + b8158ad commit 4e8c4bc

File tree

2 files changed

+34
-9
lines changed

2 files changed

+34
-9
lines changed

editor/script/find_in_files.cpp

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -865,15 +865,7 @@ void FindInFilesPanel::stop_search() {
865865
void FindInFilesPanel::_notification(int p_what) {
866866
switch (p_what) {
867867
case NOTIFICATION_THEME_CHANGED: {
868-
_search_text_label->add_theme_font_override(SceneStringName(font), get_theme_font(SNAME("source"), EditorStringName(EditorFonts)));
869-
_search_text_label->add_theme_font_size_override(SceneStringName(font_size), get_theme_font_size(SNAME("source_size"), EditorStringName(EditorFonts)));
870-
_results_display->add_theme_font_override(SceneStringName(font), get_theme_font(SNAME("source"), EditorStringName(EditorFonts)));
871-
_results_display->add_theme_font_size_override(SceneStringName(font_size), get_theme_font_size(SNAME("source_size"), EditorStringName(EditorFonts)));
872-
873-
// Rebuild search tree.
874-
if (!_finder->get_search_text().is_empty()) {
875-
start_search();
876-
}
868+
_on_theme_changed();
877869
} break;
878870
case NOTIFICATION_TRANSLATION_CHANGED: {
879871
update_matches_text();
@@ -965,6 +957,38 @@ void FindInFilesPanel::_on_result_found(const String &fpath, int line_number, in
965957
}
966958
}
967959

960+
void FindInFilesPanel::_on_theme_changed() {
961+
_results_display->add_theme_font_override(SceneStringName(font), get_theme_font(SNAME("source"), EditorStringName(EditorFonts)));
962+
_results_display->add_theme_font_size_override(SceneStringName(font_size), get_theme_font_size(SNAME("source_size"), EditorStringName(EditorFonts)));
963+
964+
Color file_item_color = _results_display->get_theme_color(SceneStringName(font_color)) * Color(1, 1, 1, 0.67);
965+
Ref<Texture2D> remove_texture = get_editor_theme_icon(SNAME("Close"));
966+
Ref<Texture2D> replace_texture = get_editor_theme_icon(SNAME("ReplaceText"));
967+
968+
TreeItem *file_item = _results_display->get_root()->get_first_child();
969+
while (file_item) {
970+
file_item->set_custom_color(0, file_item_color);
971+
if (_with_replace) {
972+
file_item->set_button(0, file_item->get_button_by_id(0, FIND_BUTTON_REPLACE), replace_texture);
973+
}
974+
file_item->set_button(0, file_item->get_button_by_id(0, FIND_BUTTON_REMOVE), remove_texture);
975+
976+
TreeItem *result_item = file_item->get_first_child();
977+
while (result_item) {
978+
if (_with_replace) {
979+
result_item->set_button(1, result_item->get_button_by_id(1, FIND_BUTTON_REPLACE), replace_texture);
980+
result_item->set_button(1, result_item->get_button_by_id(1, FIND_BUTTON_REMOVE), remove_texture);
981+
} else {
982+
result_item->set_button(0, result_item->get_button_by_id(0, FIND_BUTTON_REMOVE), remove_texture);
983+
}
984+
985+
result_item = result_item->get_next();
986+
}
987+
988+
file_item = file_item->get_next();
989+
}
990+
}
991+
968992
void FindInFilesPanel::draw_result_text(Object *item_obj, Rect2 rect) {
969993
TreeItem *item = Object::cast_to<TreeItem>(item_obj);
970994
if (!item) {

editor/script/find_in_files.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ class FindInFilesPanel : public MarginContainer {
195195
private:
196196
void _on_button_clicked(TreeItem *p_item, int p_column, int p_id, int p_mouse_button_index);
197197
void _on_result_found(const String &fpath, int line_number, int begin, int end, String text);
198+
void _on_theme_changed();
198199
void _on_finished();
199200
void _on_refresh_button_clicked();
200201
void _on_cancel_button_clicked();

0 commit comments

Comments
 (0)