Browse Source

Disable the OK button when no node is selected.

Chia-Hsiang Cheng 3 năm trước cách đây
mục cha
commit
83d478ffcd

+ 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) {
 void SceneTreeDialog::_filter_changed(const String &p_filter) {
 	tree->set_filter(p_filter);
 	tree->set_filter(p_filter);
 }
 }
@@ -1386,6 +1390,10 @@ SceneTreeDialog::SceneTreeDialog() {
 	tree->set_v_size_flags(Control::SIZE_EXPAND_FILL);
 	tree->set_v_size_flags(Control::SIZE_EXPAND_FILL);
 	tree->get_scene_tree()->connect("item_activated", callable_mp(this, &SceneTreeDialog::_select));
 	tree->get_scene_tree()->connect("item_activated", callable_mp(this, &SceneTreeDialog::_select));
 	vbc->add_child(tree);
 	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() {
 SceneTreeDialog::~SceneTreeDialog() {

+ 1 - 0
editor/scene_tree_editor.h

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