From 846416afe8f468430707dbefe1b09d5dbd804d80 Mon Sep 17 00:00:00 2001 From: Ryan Roden-Corrent Date: Sun, 13 Mar 2022 09:23:44 -0400 Subject: [PATCH] Copy full project setting path from dialog. The EditorProperty UI elements for project settings are created from SectionedInspector, which has a prefix added to each property path. Each EditorProperty needs to be made aware of this path so copy_property_path copies the full path, and not just the suffix. Fixes #59020. (cherry picked from commit d271e2517e77707d33ca46811a87603340befa2f) --- editor/editor_inspector.cpp | 4 +++- editor/editor_inspector.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index 6059282a386..21b20e67ece 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -835,7 +835,7 @@ void EditorProperty::_menu_option(int p_option) { emit_changed(property, EditorNode::get_singleton()->get_inspector()->get_property_clipboard()); } break; case MENU_COPY_PROPERTY_PATH: { - OS::get_singleton()->set_clipboard(property); + OS::get_singleton()->set_clipboard(property_path); } break; } } @@ -1325,6 +1325,7 @@ void EditorInspector::_parse_added_editors(VBoxContainer *current_vbox, Refget().properties.size() == 1) { //since it's one, associate: ep->property = F->get().properties[0]; + ep->property_path = property_prefix + F->get().properties[0]; ep->property_usage = 0; } @@ -1705,6 +1706,7 @@ void EditorInspector::update_tree() { if (F->get().properties.size() == 1) { //since it's one, associate: ep->property = F->get().properties[0]; + ep->property_path = property_prefix + F->get().properties[0]; ep->property_usage = p.usage; //and set label? } diff --git a/editor/editor_inspector.h b/editor/editor_inspector.h index 6353b7c64ae..82982ddfdb2 100644 --- a/editor/editor_inspector.h +++ b/editor/editor_inspector.h @@ -64,6 +64,7 @@ private: friend class EditorInspector; Object *object; StringName property; + String property_path; int property_usage;