Browse Source

Merge pull request #74564 from YuriSizov/inspector-is-simple-you-see-there-is-a-key-and-we-set-it-and-we-propagate-it-and-it-just-works

Update property keying state without a full Inspector rebuild
Yuri Sizov 2 years ago
parent
commit
d418def752
2 changed files with 13 additions and 1 deletions
  1. 11 1
      editor/editor_inspector.cpp
  2. 2 0
      editor/editor_inspector.h

+ 11 - 1
editor/editor_inspector.cpp

@@ -3370,7 +3370,17 @@ void EditorInspector::set_keying(bool p_active) {
 		return;
 	}
 	keying = p_active;
-	update_tree();
+	_keying_changed();
+}
+
+void EditorInspector::_keying_changed() {
+	for (const KeyValue<StringName, List<EditorProperty *>> &F : editor_property_map) {
+		for (EditorProperty *E : F.value) {
+			if (E) {
+				E->set_keying(keying);
+			}
+		}
+	}
 }
 
 void EditorInspector::set_read_only(bool p_read_only) {

+ 2 - 0
editor/editor_inspector.h

@@ -521,6 +521,8 @@ class EditorInspector : public ScrollContainer {
 	void _changed_callback();
 	void _edit_request_change(Object *p_object, const String &p_prop);
 
+	void _keying_changed();
+
 	void _filter_changed(const String &p_text);
 	void _parse_added_editors(VBoxContainer *current_vbox, EditorInspectorSection *p_section, Ref<EditorInspectorPlugin> ped);