You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-10 13:00:37 +00:00
Add a Window visibility toggle button to the Scene tree
This commit is contained in:
@@ -390,7 +390,7 @@ void SceneTreeEditor::_add_nodes(Node *p_node, TreeItem *p_parent) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_update_visibility_color(p_node, item);
|
_update_visibility_color(p_node, item);
|
||||||
} else if (p_node->is_class("CanvasLayer")) {
|
} else if (p_node->is_class("CanvasLayer") || p_node->is_class("Window")) {
|
||||||
bool v = p_node->call("is_visible");
|
bool v = p_node->call("is_visible");
|
||||||
if (v) {
|
if (v) {
|
||||||
item->add_button(0, get_theme_icon(SNAME("GuiVisibilityVisible"), SNAME("EditorIcons")), BUTTON_VISIBILITY, false, TTR("Toggle Visibility"));
|
item->add_button(0, get_theme_icon(SNAME("GuiVisibilityVisible"), SNAME("EditorIcons")), BUTTON_VISIBILITY, false, TTR("Toggle Visibility"));
|
||||||
@@ -480,10 +480,7 @@ void SceneTreeEditor::_node_visibility_changed(Node *p_node) {
|
|||||||
|
|
||||||
bool visible = false;
|
bool visible = false;
|
||||||
|
|
||||||
if (p_node->is_class("CanvasItem")) {
|
if (p_node->is_class("CanvasItem") || p_node->is_class("CanvasLayer") || p_node->is_class("Window")) {
|
||||||
visible = p_node->call("is_visible");
|
|
||||||
CanvasItemEditor::get_singleton()->get_viewport_control()->update();
|
|
||||||
} else if (p_node->is_class("CanvasLayer")) {
|
|
||||||
visible = p_node->call("is_visible");
|
visible = p_node->call("is_visible");
|
||||||
CanvasItemEditor::get_singleton()->get_viewport_control()->update();
|
CanvasItemEditor::get_singleton()->get_viewport_control()->update();
|
||||||
} else if (p_node->is_class("Node3D")) {
|
} else if (p_node->is_class("Node3D")) {
|
||||||
@@ -529,7 +526,7 @@ void SceneTreeEditor::_node_removed(Node *p_node) {
|
|||||||
p_node->disconnect("script_changed", callable_mp(this, &SceneTreeEditor::_node_script_changed));
|
p_node->disconnect("script_changed", callable_mp(this, &SceneTreeEditor::_node_script_changed));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p_node->is_class("Node3D") || p_node->is_class("CanvasItem") || p_node->is_class("CanvasLayer")) {
|
if (p_node->is_class("Node3D") || p_node->is_class("CanvasItem") || p_node->is_class("CanvasLayer") || p_node->is_class("Window")) {
|
||||||
if (p_node->is_connected("visibility_changed", callable_mp(this, &SceneTreeEditor::_node_visibility_changed))) {
|
if (p_node->is_connected("visibility_changed", callable_mp(this, &SceneTreeEditor::_node_visibility_changed))) {
|
||||||
p_node->disconnect("visibility_changed", callable_mp(this, &SceneTreeEditor::_node_visibility_changed));
|
p_node->disconnect("visibility_changed", callable_mp(this, &SceneTreeEditor::_node_visibility_changed));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user