Fixes add group in Group Editor dialog
Before this fix, new group can't be created if any existing group starts with the new name.
This commit is contained in:
parent
0edcb8ed58
commit
421ea09195
3 changed files with 15 additions and 1 deletions
|
@ -197,7 +197,7 @@ void GroupDialog::_add_group(String p_name) {
|
||||||
}
|
}
|
||||||
|
|
||||||
String name = p_name.strip_edges();
|
String name = p_name.strip_edges();
|
||||||
if (name == "" || groups->search_item_text(name)) {
|
if (name.empty() || groups->get_item_with_text(name)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3630,6 +3630,17 @@ TreeItem *Tree::search_item_text(const String &p_find, int *r_col, bool p_select
|
||||||
return _search_item_text(from->get_next_visible(true), p_find, r_col, p_selectable);
|
return _search_item_text(from->get_next_visible(true), p_find, r_col, p_selectable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TreeItem *Tree::get_item_with_text(const String &p_find) const {
|
||||||
|
for (TreeItem *current = root; current; current = current->get_next_visible()) {
|
||||||
|
for (int i = 0; i < columns.size(); i++) {
|
||||||
|
if (current->get_text(i) == p_find) {
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
void Tree::_do_incr_search(const String &p_add) {
|
void Tree::_do_incr_search(const String &p_add) {
|
||||||
|
|
||||||
uint64_t time = OS::get_singleton()->get_ticks_usec() / 1000; // convert to msec
|
uint64_t time = OS::get_singleton()->get_ticks_usec() / 1000; // convert to msec
|
||||||
|
|
|
@ -577,7 +577,10 @@ public:
|
||||||
Rect2 get_item_rect(TreeItem *p_item, int p_column = -1) const;
|
Rect2 get_item_rect(TreeItem *p_item, int p_column = -1) const;
|
||||||
bool edit_selected();
|
bool edit_selected();
|
||||||
|
|
||||||
|
// First item that starts with the text, from the current focused item down and wraps around.
|
||||||
TreeItem *search_item_text(const String &p_find, int *r_col = NULL, bool p_selectable = false);
|
TreeItem *search_item_text(const String &p_find, int *r_col = NULL, bool p_selectable = false);
|
||||||
|
// First item that matches the whole text, from the first item down.
|
||||||
|
TreeItem *get_item_with_text(const String &p_find) const;
|
||||||
|
|
||||||
Point2 get_scroll() const;
|
Point2 get_scroll() const;
|
||||||
void scroll_to_item(TreeItem *p_item);
|
void scroll_to_item(TreeItem *p_item);
|
||||||
|
|
Loading…
Reference in a new issue