Browse Source

Merge pull request #51229 from timothyqiu/inspector-update-3x

[3.x] Disable save button when Inspector is not editing anything
Rémi Verschelde 4 years ago
parent
commit
c96377399c
1 changed files with 13 additions and 15 deletions
  1. 13 15
      editor/inspector_dock.cpp

+ 13 - 15
editor/inspector_dock.cpp

@@ -413,22 +413,12 @@ void InspectorDock::update(Object *p_object) {
 
 
 	current = p_object;
 	current = p_object;
 
 
-	if (!p_object) {
-		open_docs_button->set_disabled(true);
-		object_menu->set_disabled(true);
-		warning->hide();
-		search->set_editable(false);
-		editor_path->clear_path();
-		return;
-	}
-
-	bool is_resource = p_object->is_class("Resource");
-	bool is_node = p_object->is_class("Node");
-
-	object_menu->set_disabled(false);
-	search->set_editable(true);
-	editor_path->enable_path();
+	const bool is_object = p_object != nullptr;
+	const bool is_resource = is_object && p_object->is_class("Resource");
+	const bool is_node = is_object && p_object->is_class("Node");
 
 
+	object_menu->set_disabled(!is_object);
+	search->set_editable(is_object);
 	resource_save_button->set_disabled(!is_resource);
 	resource_save_button->set_disabled(!is_resource);
 	open_docs_button->set_disabled(!is_resource && !is_node);
 	open_docs_button->set_disabled(!is_resource && !is_node);
 
 
@@ -436,6 +426,14 @@ void InspectorDock::update(Object *p_object) {
 	resource_extra_popup->set_item_disabled(resource_extra_popup->get_item_index(RESOURCE_COPY), !is_resource);
 	resource_extra_popup->set_item_disabled(resource_extra_popup->get_item_index(RESOURCE_COPY), !is_resource);
 	resource_extra_popup->set_item_disabled(resource_extra_popup->get_item_index(RESOURCE_MAKE_BUILT_IN), !is_resource);
 	resource_extra_popup->set_item_disabled(resource_extra_popup->get_item_index(RESOURCE_MAKE_BUILT_IN), !is_resource);
 
 
+	if (!is_object) {
+		warning->hide();
+		editor_path->clear_path();
+		return;
+	}
+
+	editor_path->enable_path();
+
 	PopupMenu *p = object_menu->get_popup();
 	PopupMenu *p = object_menu->get_popup();
 
 
 	p->clear();
 	p->clear();