1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-14 13:41:12 +00:00

Fix editor method calls to is_visible for Spatial and CanvasItem and is_visible itself for Spatial

This commit is contained in:
Ray Koopa
2017-01-18 21:49:30 +01:00
parent ca14dd296a
commit faa13adad3
2 changed files with 19 additions and 20 deletions

View File

@@ -208,14 +208,15 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item,int p_column,int p_id)
if (n->is_class("Spatial")) {
bool v = !bool(n->call("is_hidden"));
bool v = bool(n->call("is_visible"));
undo_redo->create_action(TTR("Toggle Spatial Visible"));
undo_redo->add_do_method(n,"_set_visible_",!v);
undo_redo->add_undo_method(n,"_set_visible_",v);
undo_redo->add_do_method(n,"set_visible",!v);
undo_redo->add_undo_method(n,"set_visible",v);
undo_redo->commit_action();
} else if (n->is_class("CanvasItem")) {
bool v = !bool(n->call("is_hidden"));
bool v = bool(n->call("is_visible"));
undo_redo->create_action(TTR("Toggle CanvasItem Visible"));
undo_redo->add_do_method(n,v?"hide":"show");
undo_redo->add_undo_method(n,v?"show":"hide");
@@ -393,11 +394,11 @@ bool SceneTreeEditor::_add_nodes(Node *p_node,TreeItem *p_parent) {
if (is_grouped)
item->add_button(0,get_icon("Group", "EditorIcons"), BUTTON_GROUP);
bool h = p_node->call("is_hidden");
if (h)
item->add_button(0,get_icon("Hidden","EditorIcons"),BUTTON_VISIBILITY);
else
bool v = p_node->call("is_visible");
if (v)
item->add_button(0,get_icon("Visible","EditorIcons"),BUTTON_VISIBILITY);
else
item->add_button(0,get_icon("Hidden","EditorIcons"),BUTTON_VISIBILITY);
if (!p_node->is_connected("visibility_changed",this,"_node_visibility_changed"))
p_node->connect("visibility_changed",this,"_node_visibility_changed",varray(p_node));
@@ -405,11 +406,11 @@ bool SceneTreeEditor::_add_nodes(Node *p_node,TreeItem *p_parent) {
_update_visibility_color(p_node, item);
} else if (p_node->is_class("Spatial")) {
bool h = p_node->call("is_hidden");
if (h)
item->add_button(0,get_icon("Hidden","EditorIcons"),BUTTON_VISIBILITY);
else
bool v = p_node->call("is_visible");
if (v)
item->add_button(0,get_icon("Visible","EditorIcons"),BUTTON_VISIBILITY);
else
item->add_button(0,get_icon("Hidden","EditorIcons"),BUTTON_VISIBILITY);
if (!p_node->is_connected("visibility_changed",this,"_node_visibility_changed"))
p_node->connect("visibility_changed",this,"_node_visibility_changed",varray(p_node));
@@ -469,16 +470,14 @@ void SceneTreeEditor::_node_visibility_changed(Node *p_node) {
bool visible=false;
if (p_node->is_class("CanvasItem")) {
visible = !p_node->call("is_hidden");
} else if (p_node->is_class("Spatial")) {
visible = !p_node->call("is_hidden");
if (p_node->is_class("CanvasItem") || p_node->is_class("Spatial")) {
visible = p_node->call("is_visible");
}
if (!visible)
item->set_button(0,idx,get_icon("Hidden","EditorIcons"));
else
if (visible)
item->set_button(0,idx,get_icon("Visible","EditorIcons"));
else
item->set_button(0,idx,get_icon("Hidden","EditorIcons"));
_update_visibility_color(p_node, item);
}