diff options
author | Jakub Grzesik <kubecz3k@gmail.com> | 2017-07-14 10:45:24 +0200 |
---|---|---|
committer | Jakub Grzesik <kubecz3k@gmail.com> | 2017-07-14 10:59:11 +0200 |
commit | 7f31cbda4fcd974fd72e61eb33074abd75b0e195 (patch) | |
tree | 4d742c607f302f80e20c0acc28c700c88da6ece0 /editor | |
parent | 9a502d3c17d4701b0fd8390e515c52a69dc0bf85 (diff) |
Fix uncheckable checkboxes in RMB menu. closes #9625
Diffstat (limited to 'editor')
-rw-r--r-- | editor/scene_tree_dock.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index 886474200e..cdae9baaf2 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -663,13 +663,16 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { if (List<Node *>::Element *e = selection.front()) { if (Node *node = e->get()) { bool editable = EditorNode::get_singleton()->get_edited_scene()->is_editable_instance(node); + int editable_item_idx = menu->get_item_idx_from_text(TTR("Editable Children")); + int placeholder_item_idx = menu->get_item_idx_from_text(TTR("Load As Placeholder")); editable = !editable; EditorNode::get_singleton()->get_edited_scene()->set_editable_instance(node, editable); - menu->set_item_checked(18, editable); + + menu->set_item_checked(editable_item_idx, editable); if (editable) { node->set_scene_instance_load_placeholder(false); - menu->set_item_checked(19, false); + menu->set_item_checked(placeholder_item_idx, false); } scene_tree->update_tree(); } @@ -681,12 +684,14 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { if (Node *node = e->get()) { bool placeholder = node->get_scene_instance_load_placeholder(); placeholder = !placeholder; + int editable_item_idx = menu->get_item_idx_from_text(TTR("Editable Children")); + int placeholder_item_idx = menu->get_item_idx_from_text(TTR("Load As Placeholder")); if (placeholder) EditorNode::get_singleton()->get_edited_scene()->set_editable_instance(node, false); node->set_scene_instance_load_placeholder(placeholder); - menu->set_item_checked(18, false); - menu->set_item_checked(19, placeholder); + menu->set_item_checked(editable_item_idx, false); + menu->set_item_checked(placeholder_item_idx, placeholder); scene_tree->update_tree(); } } @@ -1892,8 +1897,8 @@ void SceneTreeDock::_tree_rmb(const Vector2 &p_menu_pos) { menu->add_check_item(TTR("Load As Placeholder"), TOOL_SCENE_USE_PLACEHOLDER); menu->add_item(TTR("Discard Instancing"), TOOL_SCENE_CLEAR_INSTANCING); menu->add_icon_item(get_icon("Load", "EditorIcons"), TTR("Open in Editor"), TOOL_SCENE_OPEN); - menu->set_item_checked(18, editable); - menu->set_item_checked(19, placeholder); + menu->set_item_checked(menu->get_item_idx_from_text(TTR("Editable Children")), editable); + menu->set_item_checked(menu->get_item_idx_from_text(TTR("Load As Placeholder")), placeholder); } } } |