Add buttons in Remote Scene Tree
A Scene button to any scene instantiated from file. When clicked, it opens the original PackedScene. A toggle visibility button is also available.
This commit is contained in:
@ -77,6 +77,7 @@ EditorDebuggerNode::EditorDebuggerNode() {
|
||||
remote_scene_tree = memnew(EditorDebuggerTree);
|
||||
remote_scene_tree->connect("object_selected", callable_mp(this, &EditorDebuggerNode::_remote_object_requested));
|
||||
remote_scene_tree->connect("save_node", callable_mp(this, &EditorDebuggerNode::_save_node_requested));
|
||||
remote_scene_tree->connect("button_clicked", callable_mp(this, &EditorDebuggerNode::_remote_tree_button_pressed));
|
||||
SceneTreeDock::get_singleton()->add_remote_tree_editor(remote_scene_tree);
|
||||
SceneTreeDock::get_singleton()->connect("remote_tree_selected", callable_mp(this, &EditorDebuggerNode::request_remote_tree));
|
||||
|
||||
@ -573,6 +574,24 @@ void EditorDebuggerNode::_remote_tree_updated(int p_debugger) {
|
||||
remote_scene_tree->update_scene_tree(get_current_debugger()->get_remote_tree(), p_debugger);
|
||||
}
|
||||
|
||||
void EditorDebuggerNode::_remote_tree_button_pressed(Object *p_item, int p_column, int p_id, MouseButton p_button) {
|
||||
if (p_button != MouseButton::LEFT) {
|
||||
return;
|
||||
}
|
||||
|
||||
TreeItem *item = Object::cast_to<TreeItem>(p_item);
|
||||
ERR_FAIL_COND(!item);
|
||||
|
||||
if (p_id == EditorDebuggerTree::BUTTON_SUBSCENE) {
|
||||
remote_scene_tree->emit_signal(SNAME("open"), item->get_meta("scene_file_path"));
|
||||
} else if (p_id == EditorDebuggerTree::BUTTON_VISIBILITY) {
|
||||
ObjectID obj_id = item->get_metadata(0);
|
||||
ERR_FAIL_COND(obj_id.is_null());
|
||||
get_current_debugger()->update_remote_object(obj_id, "visible", !item->get_meta("visible"));
|
||||
get_current_debugger()->request_remote_tree();
|
||||
}
|
||||
}
|
||||
|
||||
void EditorDebuggerNode::_remote_object_updated(ObjectID p_id, int p_debugger) {
|
||||
if (p_debugger != tabs->get_current_tab()) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user