diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-01-29 13:16:55 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-01-29 13:16:55 +0100 |
commit | 061c77622822ce7e3a4deaa60808c0773186a6c0 (patch) | |
tree | 13745dae4a5fb989bec6ff0c122c89145d5754fd /editor | |
parent | 269145f48a13a943f52d67a20d9aa7b075f1e0db (diff) | |
parent | d644b9b640e905555e7e59fcc85eeb0b786141b6 (diff) | |
download | redot-engine-061c77622822ce7e3a4deaa60808c0773186a6c0.tar.gz |
Merge pull request #87381 from YuriSizov/core-sneaky-properties
Better hide internal properties from users
Diffstat (limited to 'editor')
-rw-r--r-- | editor/editor_help.cpp | 10 | ||||
-rw-r--r-- | editor/editor_inspector.cpp | 18 | ||||
-rw-r--r-- | editor/editor_inspector.h | 2 |
3 files changed, 26 insertions, 4 deletions
diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp index 33862a6792..dd0bbccbee 100644 --- a/editor/editor_help.cpp +++ b/editor/editor_help.cpp @@ -2896,9 +2896,17 @@ void EditorHelpTooltip::parse_tooltip(const String &p_text) { const String &property_name = slices[2]; const String &property_args = slices[3]; + String formatted_text; + + // Exclude internal properties, they are not documented. + if (type == "internal_property") { + formatted_text = "[i]" + TTR("This property can only be set in the Inspector.") + "[/i]"; + set_text(formatted_text); + return; + } + String title; String description; - String formatted_text; if (type == "class") { title = class_name; diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index a3530fc9ab..bfadc48b33 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -436,6 +436,10 @@ void EditorProperty::set_doc_path(const String &p_doc_path) { doc_path = p_doc_path; } +void EditorProperty::set_internal(bool p_internal) { + internal = p_internal; +} + void EditorProperty::update_property() { GDVIRTUAL_CALL(_update_property); } @@ -748,10 +752,10 @@ void EditorProperty::shortcut_input(const Ref<InputEvent> &p_event) { if (ED_IS_SHORTCUT("property_editor/copy_value", p_event)) { menu_option(MENU_COPY_VALUE); accept_event(); - } else if (ED_IS_SHORTCUT("property_editor/paste_value", p_event) && !is_read_only()) { + } else if (!is_read_only() && ED_IS_SHORTCUT("property_editor/paste_value", p_event)) { menu_option(MENU_PASTE_VALUE); accept_event(); - } else if (ED_IS_SHORTCUT("property_editor/copy_property_path", p_event)) { + } else if (!internal && ED_IS_SHORTCUT("property_editor/copy_property_path", p_event)) { menu_option(MENU_COPY_PROPERTY_PATH); accept_event(); } @@ -1036,6 +1040,8 @@ void EditorProperty::_update_popup() { menu->add_icon_shortcut(get_editor_theme_icon(SNAME("ActionPaste")), ED_GET_SHORTCUT("property_editor/paste_value"), MENU_PASTE_VALUE); menu->add_icon_shortcut(get_editor_theme_icon(SNAME("CopyNodePath")), ED_GET_SHORTCUT("property_editor/copy_property_path"), MENU_COPY_PROPERTY_PATH); menu->set_item_disabled(MENU_PASTE_VALUE, is_read_only()); + menu->set_item_disabled(MENU_COPY_PROPERTY_PATH, internal); + if (!pin_hidden) { menu->add_separator(); if (can_pin) { @@ -3329,7 +3335,11 @@ void EditorInspector::update_tree() { if (use_doc_hints) { // `|` separator used in `EditorHelpTooltip` for formatting. if (theme_item_name.is_empty()) { - ep->set_tooltip_text("property|" + classname + "|" + property_prefix + p.name + "|"); + if (p.usage & PROPERTY_USAGE_INTERNAL) { + ep->set_tooltip_text("internal_property|" + classname + "|" + property_prefix + p.name + "|"); + } else { + ep->set_tooltip_text("property|" + classname + "|" + property_prefix + p.name + "|"); + } } else { ep->set_tooltip_text("theme_item|" + classname + "|" + theme_item_name + "|"); } @@ -3337,6 +3347,8 @@ void EditorInspector::update_tree() { } ep->set_doc_path(doc_path); + ep->set_internal(p.usage & PROPERTY_USAGE_INTERNAL); + ep->update_property(); ep->_update_pin_flags(); ep->update_editor_property_status(); diff --git a/editor/editor_inspector.h b/editor/editor_inspector.h index e36606c080..2dcad88840 100644 --- a/editor/editor_inspector.h +++ b/editor/editor_inspector.h @@ -74,6 +74,7 @@ private: StringName property; String property_path; String doc_path; + bool internal = false; bool has_doc_tooltip = false; int property_usage; @@ -156,6 +157,7 @@ public: EditorInspector *get_parent_inspector() const; void set_doc_path(const String &p_doc_path); + void set_internal(bool p_internal); virtual void update_property(); void update_editor_property_status(); |