Now able to "Copy Node Path" from Remote tab". Fixes issue 28585.

This commit is contained in:
hbina085 2019-05-05 03:59:10 -04:00
parent d8617f237a
commit 5f862ee186
2 changed files with 21 additions and 0 deletions

View File

@ -299,6 +299,7 @@ void ScriptEditorDebugger::_scene_tree_rmb_selected(const Vector2 &p_position) {
item_menu->clear(); item_menu->clear();
item_menu->add_icon_item(get_icon("CreateNewSceneFrom", "EditorIcons"), TTR("Save Branch as Scene"), ITEM_MENU_SAVE_REMOTE_NODE); item_menu->add_icon_item(get_icon("CreateNewSceneFrom", "EditorIcons"), TTR("Save Branch as Scene"), ITEM_MENU_SAVE_REMOTE_NODE);
item_menu->add_icon_item(get_icon("CopyNodePath", "EditorIcons"), TTR("Copy Node Path"), ITEM_MENU_COPY_NODE_PATH);
item_menu->set_global_position(get_global_mouse_position()); item_menu->set_global_position(get_global_mouse_position());
item_menu->popup(); item_menu->popup();
} }
@ -396,6 +397,7 @@ Size2 ScriptEditorDebugger::get_minimum_size() const {
ms.y = MAX(ms.y, 250 * EDSCALE); ms.y = MAX(ms.y, 250 * EDSCALE);
return ms; return ms;
} }
void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_data) { void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_data) {
if (p_msg == "debug_enter") { if (p_msg == "debug_enter") {
@ -1930,6 +1932,24 @@ void ScriptEditorDebugger::_item_menu_id_pressed(int p_option) {
file_dialog->popup_centered_ratio(); file_dialog->popup_centered_ratio();
} break; } break;
case ITEM_MENU_COPY_NODE_PATH: {
TreeItem *ti = inspect_scene_tree->get_selected();
String text = ti->get_text(0);
if (ti->get_parent() == NULL) {
text = ".";
} else if (ti->get_parent()->get_parent() == NULL) {
text = ".";
} else {
while (ti->get_parent()->get_parent() != inspect_scene_tree->get_root()) {
ti = ti->get_parent();
text = ti->get_text(0) + "/" + text;
}
}
OS::get_singleton()->set_clipboard(text);
} break;
} }
} }

View File

@ -66,6 +66,7 @@ class ScriptEditorDebugger : public Control {
enum ItemMenu { enum ItemMenu {
ITEM_MENU_COPY_ERROR, ITEM_MENU_COPY_ERROR,
ITEM_MENU_SAVE_REMOTE_NODE, ITEM_MENU_SAVE_REMOTE_NODE,
ITEM_MENU_COPY_NODE_PATH,
}; };
AcceptDialog *msgdialog; AcceptDialog *msgdialog;