Browse Source

Remember state of built-in script/shader checkbox

kobewi 8 months ago
parent
commit
ad9b66100e
2 changed files with 17 additions and 0 deletions
  1. 9 0
      editor/script_create_dialog.cpp
  2. 8 0
      editor/shader_create_dialog.cpp

+ 9 - 0
editor/script_create_dialog.cpp

@@ -204,6 +204,11 @@ void ScriptCreateDialog::config(const String &p_base_name, const String &p_base_
 	load_enabled = p_load_enabled;
 
 	_language_changed(language_menu->get_selected());
+
+	if (_can_be_built_in()) {
+		built_in->set_pressed(EditorSettings::get_singleton()->get_project_metadata("script_setup", "create_built_in_script", false));
+		_built_in_pressed();
+	}
 }
 
 void ScriptCreateDialog::set_inheritance_base_type(const String &p_base) {
@@ -344,6 +349,10 @@ void ScriptCreateDialog::_template_changed(int p_template) {
 void ScriptCreateDialog::ok_pressed() {
 	if (is_new_script_created) {
 		_create_new();
+		if (_can_be_built_in()) {
+			// Only save state of built-in checkbox if it's enabled.
+			EditorSettings::get_singleton()->set_project_metadata("script_setup", "create_built_in_script", built_in->is_pressed());
+		}
 	} else {
 		_load_exist();
 	}

+ 8 - 0
editor/shader_create_dialog.cpp

@@ -130,6 +130,10 @@ void ShaderCreateDialog::_template_changed(int p_template) {
 void ShaderCreateDialog::ok_pressed() {
 	if (is_new_shader_created) {
 		_create_new();
+		if (built_in_enabled) {
+			// Only save state of built-in checkbox if it's enabled.
+			EditorSettings::get_singleton()->set_project_metadata("shader_setup", "create_built_in_shader", internal->is_pressed());
+		}
 	} else {
 		_load_exist();
 	}
@@ -409,6 +413,10 @@ void ShaderCreateDialog::config(const String &p_base_path, bool p_built_in_enabl
 	built_in_enabled = p_built_in_enabled;
 	load_enabled = p_load_enabled;
 
+	if (built_in_enabled) {
+		internal->set_pressed(EditorSettings::get_singleton()->get_project_metadata("shader_setup", "create_built_in_shader", false));
+	}
+
 	if (p_preferred_type > -1) {
 		type_menu->select(p_preferred_type);
 		_type_changed(p_preferred_type);