diff --git a/editor/tree_search.cpp b/editor/tree_search.cpp index ae775b5..4249dfa 100644 --- a/editor/tree_search.cpp +++ b/editor/tree_search.cpp @@ -114,7 +114,7 @@ void TreeSearch::_highlight_tree_item(TreeItem *p_tree_item) { } // if the cached draw method is already applied, do nothing. - if (callable_cache.has(p_tree_item) && parent_draw_method == callable_cache.get(p_tree_item)){ + if (callable_cache.has(p_tree_item) && parent_draw_method == callable_cache.get(p_tree_item)) { return; } @@ -138,7 +138,7 @@ void TreeSearch::_highlight_tree_item(TreeItem *p_tree_item) { } // custom draw callback for highlighting (bind the parent_drw_method to this) -void TreeSearch::_draw_highlight_item(TreeItem *p_tree_item, Rect2 p_rect, Callable p_parent_draw_method) { +void TreeSearch::_draw_highlight_item(TreeItem *p_tree_item, const Rect2 p_rect, const Callable p_parent_draw_method) { if (!p_tree_item) { return; } @@ -250,12 +250,12 @@ void TreeSearch::_update_number_matches() { } } -String TreeSearch::_get_search_mask() { +String TreeSearch::_get_search_mask() const { ERR_FAIL_COND_V(!search_panel, ""); return search_panel->get_text(); } -void TreeSearch::_find_matching_entries(TreeItem *p_tree_item, const String &p_search_mask, Vector &p_accum) { +void TreeSearch::_find_matching_entries(TreeItem *p_tree_item, const String &p_search_mask, Vector &p_accum) const { if (!p_tree_item) { return; } @@ -381,7 +381,7 @@ void TreeSearch::_select_next_match() { } template -inline bool TreeSearch::_vector_has_bsearch(Vector p_vec, T *element) { +inline bool TreeSearch::_vector_has_bsearch(Vector &p_vec, T *element) const { int idx = p_vec.bsearch(element, true); bool in_array = idx >= 0 && idx < p_vec.size(); @@ -517,7 +517,7 @@ TreeSearch::TreeSearchMode TreeSearchPanel::get_search_mode() { return TreeSearch::TreeSearchMode::FILTER; } -String TreeSearchPanel::get_text() { +String TreeSearchPanel::get_text() const { if (!line_edit_search) { return String(); } diff --git a/editor/tree_search.h b/editor/tree_search.h index 21ff51f..6e6ea32 100644 --- a/editor/tree_search.h +++ b/editor/tree_search.h @@ -75,22 +75,23 @@ private: void _highlight_tree_item(TreeItem *p_tree_item); // Custom draw-Callback (bind inherited Callable). - void _draw_highlight_item(TreeItem *p_tree_item, Rect2 p_rect, Callable p_parent_draw_method); + void _draw_highlight_item(TreeItem *p_tree_item, const Rect2 p_rect, const Callable p_parent_draw_method); void _update_matching_entries(const String &p_search_mask); void _update_ordered_tree_items(TreeItem *p_tree_item); void _update_number_matches(); - void _find_matching_entries(TreeItem *p_tree_item, const String &p_search_mask, Vector &p_accum); - String _get_search_mask(); + void _find_matching_entries(TreeItem *p_tree_item, const String &p_search_mask, Vector &p_accum) const; + String _get_search_mask() const; StringSearchIndices _substring_bounds(const String &p_searchable, const String &p_search_mask) const; void _select_item(TreeItem *p_item); void _select_first_match(); void _select_next_match(); + // TODO: make p_vec `const` once Vector::bsearch is const. See: https://github.com/godotengine/godot/pull/90341 template - bool _vector_has_bsearch(Vector p_vec, T *element); + bool _vector_has_bsearch(Vector &p_vec, T *element) const; protected: static void _bind_methods() {} @@ -121,8 +122,7 @@ private: CheckBox *check_button_filter_highlight; void _initialize_controls(); void _add_spacer(float width_multiplier = 1.f); - - void _on_draw_highlight(TreeItem *p_item, Rect2 p_rect); + void _notification(int p_what); protected: @@ -130,7 +130,7 @@ protected: public: TreeSearch::TreeSearchMode get_search_mode(); - String get_text(); + String get_text() const; void show_and_focus(); TreeSearchPanel(); };