Browse Source

Merge pull request #62980 from garychia/scene_tree_editor_improvement

Rémi Verschelde 3 years ago
parent
commit
2c11e6d9ef
2 changed files with 9 additions and 0 deletions
  1. 8 0
      editor/scene_tree_editor.cpp
  2. 1 0
      editor/scene_tree_editor.h

+ 8 - 0
editor/scene_tree_editor.cpp

@@ -1359,6 +1359,10 @@ void SceneTreeDialog::_select() {
 	}
 }
 
+void SceneTreeDialog::_selected_changed() {
+	get_ok_button()->set_disabled(!tree->get_selected());
+}
+
 void SceneTreeDialog::_filter_changed(const String &p_filter) {
 	tree->set_filter(p_filter);
 }
@@ -1386,6 +1390,10 @@ SceneTreeDialog::SceneTreeDialog() {
 	tree->set_v_size_flags(Control::SIZE_EXPAND_FILL);
 	tree->get_scene_tree()->connect("item_activated", callable_mp(this, &SceneTreeDialog::_select));
 	vbc->add_child(tree);
+
+	// Disable the OK button when no node is selected.
+	get_ok_button()->set_disabled(!tree->get_selected());
+	tree->connect("node_selected", callable_mp(this, &SceneTreeDialog::_selected_changed));
 }
 
 SceneTreeDialog::~SceneTreeDialog() {

+ 1 - 0
editor/scene_tree_editor.h

@@ -176,6 +176,7 @@ class SceneTreeDialog : public ConfirmationDialog {
 
 	void _select();
 	void _cancel();
+	void _selected_changed();
 	void _filter_changed(const String &p_filter);
 	void _update_theme();