Update Tree when modified

This commit is contained in:
kobewi 2021-07-03 22:36:22 +02:00
parent cb4e42155d
commit 9569729888

View File

@ -99,39 +99,44 @@ void TreeItem::_change_tree(Tree *p_tree) {
c = c->next; c = c->next;
} }
if (tree && tree->root == this) { if (tree) {
tree->root = nullptr; if (tree->root == this) {
} tree->root = nullptr;
}
if (tree && tree->popup_edited_item == this) { if (tree->popup_edited_item == this) {
tree->popup_edited_item = nullptr; tree->popup_edited_item = nullptr;
tree->pressing_for_editor = false; tree->pressing_for_editor = false;
} }
if (tree && tree->cache.hover_item == this) { if (tree->cache.hover_item == this) {
tree->cache.hover_item = nullptr; tree->cache.hover_item = nullptr;
} }
if (tree && tree->selected_item == this) { if (tree->selected_item == this) {
tree->selected_item = nullptr; tree->selected_item = nullptr;
} }
if (tree && tree->drop_mode_over == this) { if (tree->drop_mode_over == this) {
tree->drop_mode_over = nullptr; tree->drop_mode_over = nullptr;
} }
if (tree && tree->single_select_defer == this) { if (tree->single_select_defer == this) {
tree->single_select_defer = nullptr; tree->single_select_defer = nullptr;
} }
if (tree && tree->edited_item == this) { if (tree->edited_item == this) {
tree->edited_item = nullptr; tree->edited_item = nullptr;
tree->pressing_for_editor = false; tree->pressing_for_editor = false;
}
tree->update();
} }
tree = p_tree; tree = p_tree;
if (tree) { if (tree) {
tree->update();
cells.resize(tree->columns.size()); cells.resize(tree->columns.size());
} }
} }
@ -451,6 +456,7 @@ TreeItem *TreeItem::create_child(int p_idx) {
TreeItem *ti = memnew(TreeItem(tree)); TreeItem *ti = memnew(TreeItem(tree));
if (tree) { if (tree) {
ti->cells.resize(tree->columns.size()); ti->cells.resize(tree->columns.size());
tree->update();
} }
TreeItem *l_prev = nullptr; TreeItem *l_prev = nullptr;
@ -654,11 +660,7 @@ void TreeItem::move_before(TreeItem *p_item) {
next = p_item; next = p_item;
p_item->prev = this; p_item->prev = this;
if (old_tree && old_tree != tree) { if (tree && old_tree == tree) {
old_tree->update();
}
if (tree) {
tree->update(); tree->update();
} }
} }
@ -696,11 +698,7 @@ void TreeItem::move_after(TreeItem *p_item) {
parent->children_cache.append(this); parent->children_cache.append(this);
} }
if (old_tree && old_tree != tree) { if (tree && old_tree == tree) {
old_tree->update();
}
if (tree) {
tree->update(); tree->update();
} }
} }