aboutsummaryrefslogtreecommitdiff
path: root/tools/editor
diff options
context:
space:
mode:
authorvolzhs2016-12-28 22:12:08 +0900
committerRémi Verschelde2017-01-12 19:15:28 +0100
commitf520e7788e41f9f8d1fe92cbd6183b94361b81c8 (patch)
tree177191426b4a57200e6da1f9917f65f3c9df58b7 /tools/editor
parent580031e6f54413911d01de29c5517ca3108b708b (diff)
downloadgodot-f520e7788e41f9f8d1fe92cbd6183b94361b81c8.tar.gz
godot-f520e7788e41f9f8d1fe92cbd6183b94361b81c8.tar.zst
godot-f520e7788e41f9f8d1fe92cbd6183b94361b81c8.zip
Show visual notice for visibility on Scene Dock
(cherry picked from commit f33e21e7afc64990bca106e6b349cbe2f7e81c0e)
Diffstat (limited to 'tools/editor')
-rw-r--r--tools/editor/scene_tree_editor.cpp15
-rw-r--r--tools/editor/scene_tree_editor.h1
2 files changed, 15 insertions, 1 deletions
diff --git a/tools/editor/scene_tree_editor.cpp b/tools/editor/scene_tree_editor.cpp
index e3f2825da..3de4389d4 100644
--- a/tools/editor/scene_tree_editor.cpp
+++ b/tools/editor/scene_tree_editor.cpp
@@ -402,6 +402,7 @@ bool SceneTreeEditor::_add_nodes(Node *p_node,TreeItem *p_parent) {
if (!p_node->is_connected("visibility_changed",this,"_node_visibility_changed"))
p_node->connect("visibility_changed",this,"_node_visibility_changed",varray(p_node));
+ _update_visibility_color(p_node, item);
} else if (p_node->is_type("Spatial")) {
bool h = p_node->call("is_hidden");
@@ -413,6 +414,7 @@ bool SceneTreeEditor::_add_nodes(Node *p_node,TreeItem *p_parent) {
if (!p_node->is_connected("visibility_changed",this,"_node_visibility_changed"))
p_node->connect("visibility_changed",this,"_node_visibility_changed",varray(p_node));
+ _update_visibility_color(p_node, item);
}
}
@@ -478,9 +480,20 @@ void SceneTreeEditor::_node_visibility_changed(Node *p_node) {
else
item->set_button(0,idx,get_icon("Visible","EditorIcons"));
-
+ _update_visibility_color(p_node, item);
}
+void SceneTreeEditor::_update_visibility_color(Node *p_node, TreeItem *p_item) {
+ if (p_node->is_type("CanvasItem") || p_node->is_type("Spatial")) {
+ Color color(1,1,1,1);
+ bool visible_on_screen = p_node->call("is_visible");
+ if (!visible_on_screen) {
+ color = Color(0.6,0.6,0.6,1);
+ }
+ int idx=p_item->get_button_by_id(0,BUTTON_VISIBILITY);
+ p_item->set_button_color(0,idx,color);
+ }
+}
void SceneTreeEditor::_node_script_changed(Node *p_node) {
diff --git a/tools/editor/scene_tree_editor.h b/tools/editor/scene_tree_editor.h
index 12d85ecde..f23b63ada 100644
--- a/tools/editor/scene_tree_editor.h
+++ b/tools/editor/scene_tree_editor.h
@@ -117,6 +117,7 @@ class SceneTreeEditor : public Control {
void _update_selection(TreeItem *item);
void _node_script_changed(Node *p_node);
void _node_visibility_changed(Node *p_node);
+ void _update_visibility_color(Node *p_node, TreeItem *p_item);
void _subscene_option(int p_idx);
void _node_replace_owner(Node* p_base,Node* p_node,Node* p_root);