Search result highlights follow font size
(cherry picked from commit a86521d0bd
)
This commit is contained in:
parent
6e3a1074ce
commit
dc7f555783
|
@ -670,22 +670,20 @@ void FindInFilesPanel::_on_result_found(String fpath, int line_number, int begin
|
||||||
// Do this first because it resets properties of the cell...
|
// Do this first because it resets properties of the cell...
|
||||||
item->set_cell_mode(text_index, TreeItem::CELL_MODE_CUSTOM);
|
item->set_cell_mode(text_index, TreeItem::CELL_MODE_CUSTOM);
|
||||||
|
|
||||||
String item_text = vformat("%3s: %s", line_number, text.replace("\t", " "));
|
// Trim result item line
|
||||||
|
int old_text_size = text.size();
|
||||||
|
text = text.strip_edges(true, false);
|
||||||
|
int chars_removed = old_text_size - text.size();
|
||||||
|
String start = vformat("%3s: ", line_number);
|
||||||
|
|
||||||
item->set_text(text_index, item_text);
|
item->set_text(text_index, start + text);
|
||||||
item->set_custom_draw(text_index, this, "_draw_result_text");
|
item->set_custom_draw(text_index, this, "_draw_result_text");
|
||||||
|
|
||||||
Ref<Font> font = _results_display->get_font("font");
|
|
||||||
|
|
||||||
float raw_text_width = font->get_string_size(text).x;
|
|
||||||
float item_text_width = font->get_string_size(item_text).x;
|
|
||||||
|
|
||||||
Result r;
|
Result r;
|
||||||
r.line_number = line_number;
|
r.line_number = line_number;
|
||||||
r.begin = begin;
|
r.begin = begin;
|
||||||
r.end = end;
|
r.end = end;
|
||||||
r.draw_begin = (item_text_width - raw_text_width) + font->get_string_size(text.left(r.begin)).x;
|
r.begin_trimmed = begin - chars_removed + start.size() - 1;
|
||||||
r.draw_width = font->get_string_size(text.substr(r.begin, r.end - r.begin)).x;
|
|
||||||
_result_items[item] = r;
|
_result_items[item] = r;
|
||||||
|
|
||||||
if (_with_replace) {
|
if (_with_replace) {
|
||||||
|
@ -705,10 +703,12 @@ void FindInFilesPanel::draw_result_text(Object *item_obj, Rect2 rect) {
|
||||||
if (!E)
|
if (!E)
|
||||||
return;
|
return;
|
||||||
Result r = E->value();
|
Result r = E->value();
|
||||||
|
String item_text = item->get_text(_with_replace ? 1 : 0);
|
||||||
|
Ref<Font> font = _results_display->get_font("font");
|
||||||
|
|
||||||
Rect2 match_rect = rect;
|
Rect2 match_rect = rect;
|
||||||
match_rect.position.x += r.draw_begin;
|
match_rect.position.x += font->get_string_size(item_text.left(r.begin_trimmed)).x;
|
||||||
match_rect.size.x = r.draw_width;
|
match_rect.size.x = font->get_string_size(_search_text_label->get_text()).x;
|
||||||
match_rect.position.y += 1 * EDSCALE;
|
match_rect.position.y += 1 * EDSCALE;
|
||||||
match_rect.size.y -= 2 * EDSCALE;
|
match_rect.size.y -= 2 * EDSCALE;
|
||||||
|
|
||||||
|
|
|
@ -174,8 +174,7 @@ private:
|
||||||
int line_number;
|
int line_number;
|
||||||
int begin;
|
int begin;
|
||||||
int end;
|
int end;
|
||||||
float draw_begin;
|
int begin_trimmed;
|
||||||
float draw_width;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void apply_replaces_in_file(String fpath, const Vector<Result> &locations, String new_text);
|
void apply_replaces_in_file(String fpath, const Vector<Result> &locations, String new_text);
|
||||||
|
|
Loading…
Reference in New Issue