summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2021-08-04 09:28:56 +0200
committerGitHub <noreply@github.com>2021-08-04 09:28:56 +0200
commit7eedc2c34822f9b14f04e6866e73626959f6d647 (patch)
treead05f83ba8cf7d78247972006da566962a790ab8
parent1eff610e2bd71521db6d0f4fee25a641e1c7bdd6 (diff)
parentb38f528082aee3fd77c26a1cae8add051d45b94a (diff)
Merge pull request #51228 from timothyqiu/inspector-update
Disable save button when Inspector is not editing anything
-rw-r--r--editor/inspector_dock.cpp28
1 files changed, 13 insertions, 15 deletions
diff --git a/editor/inspector_dock.cpp b/editor/inspector_dock.cpp
index a566afb597..952bec4d87 100644
--- a/editor/inspector_dock.cpp
+++ b/editor/inspector_dock.cpp
@@ -408,22 +408,12 @@ void InspectorDock::update(Object *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);
open_docs_button->set_disabled(!is_resource && !is_node);
@@ -431,6 +421,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_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();
p->clear();