Example #1
0
void ScriptCreateDialog::_file_selected(const String& p_file) {

	String p = Globals::get_singleton()->localize_path(p_file);
	file_path->set_text(p);
	_path_changed(p);

}
Example #2
0
void EditorSubScene::_path_selected(const String& p_path) {


	path->set_text(p_path);
	_path_changed(p_path);

}
Example #3
0
void ScriptCreateDialog::_file_selected(const String &p_file) {

	String p = ProjectSettings::get_singleton()->localize_path(p_file);
	if (is_browsing_parent) {
		parent_name->set_text("\"" + p + "\"");
		_class_name_changed("\"" + p + "\"");
	} else {
		file_path->set_text(p);
		_path_changed(p);
	}
}
Example #4
0
void ScriptCreateDialog::_built_in_pressed() {

	if (internal->is_pressed()) {
		is_built_in = true;
		is_new_script_created = true;
	} else {
		is_built_in = false;
		_path_changed(file_path->get_text());
	}
	_update_dialog();
}
Example #5
0
void ScriptCreateDialog::_lang_changed(int l) {

	l=language_menu->get_selected();
	if (ScriptServer::get_language( l )->has_named_classes()) {
		class_name->set_editable(true);
	} else {
		class_name->set_editable(false);
	}

	String selected_ext="."+ScriptServer::get_language( l )->get_extension();
	String path=file_path->get_text();
	String extension="";
	if (path.find(".")>=0) {
		extension=path.extension();
	}

	if (extension.length()==0) {
		// add extension if none
		path+=selected_ext;
		_path_changed(path);
	} else {
		// change extension by selected language
		List<String> extensions;
		// get all possible extensions for script
		for (int l=0;l<language_menu->get_item_count();l++) {
			ScriptServer::get_language( l )->get_recognized_extensions(&extensions);
		}

		for(List<String>::Element *E=extensions.front();E;E=E->next()) {
			if (E->get().nocasecmp_to(extension)==0) {
				path=path.basename()+selected_ext;
				_path_changed(path);
				break;
			}
		}
	}
	file_path->set_text(path);
	_class_name_changed(class_name->get_text());

}
Example #6
0
void ScriptCreateDialog::config(const String& p_base_name,const String&p_base_path) {

	class_name->set_text("");
	parent_name->set_text(p_base_name);
	if (p_base_path!="")  {
		initial_bp=p_base_path.basename();
		file_path->set_text(initial_bp+"."+ScriptServer::get_language( language_menu->get_selected() )->get_extension());
	} else {
		initial_bp="";
		file_path->set_text("");
	}
	_class_name_changed("");
	_path_changed(file_path->get_text());
}
Example #7
0
void ScriptCreateDialog::_lang_changed(int l) {

	l=language_menu->get_selected();
	if (ScriptServer::get_language( l )->has_named_classes()) {
		class_name->set_editable(true);
	} else {
		class_name->set_editable(false);
	}
	if (file_path->get_text().basename()==initial_bp) {
		file_path->set_text(initial_bp+"."+ScriptServer::get_language( l )->get_extension());
		_path_changed(file_path->get_text());
	}
	_class_name_changed(class_name->get_text());

}
Example #8
0
void ScriptCreateDialog::_file_selected(const String &p_file) {

	String p = ProjectSettings::get_singleton()->localize_path(p_file);
	if (is_browsing_parent) {
		parent_name->set_text("\"" + p + "\"");
		_class_name_changed("\"" + p + "\"");
	} else {
		file_path->set_text(p);
		_path_changed(p);

		String filename = p.get_file().get_basename();
		int select_start = p.find_last(filename);
		file_path->select(select_start, select_start + filename.length());
		file_path->set_cursor_position(select_start + filename.length());
		file_path->grab_focus();
	}
}
Example #9
0
void ScriptCreateDialog::config(const String &p_base_name, const String &p_base_path, bool p_built_in_enabled) {

	class_name->set_text("");
	class_name->deselect();
	parent_name->set_text(p_base_name);
	parent_name->deselect();

	if (p_base_path != "") {
		initial_bp = p_base_path.get_basename();
		file_path->set_text(initial_bp + "." + ScriptServer::get_language(language_menu->get_selected())->get_extension());
	} else {
		initial_bp = "";
		file_path->set_text("");
	}
	file_path->deselect();

	built_in_enabled = p_built_in_enabled;

	_lang_changed(current_language);
	_class_name_changed("");
	_path_changed(file_path->get_text());
}
Example #10
0
void EditorSubScene::clear() {

	path->set_text("");
	_path_changed("");
}
Example #11
0
void ScriptCreateDialog::_update_dialog() {

	bool script_ok = true;

	/* "Add Script Dialog" gui logic and script checks */

	// Is Script Valid (order from top to bottom)
	get_ok()->set_disabled(true);
	if (!is_built_in) {
		if (!is_path_valid) {
			_msg_script_valid(false, TTR("Invalid Path"));
			script_ok = false;
		}
	}
	if (has_named_classes && (!is_class_name_valid)) {
		_msg_script_valid(false, TTR("Invalid class name"));
		script_ok = false;
	}
	if (!is_parent_name_valid) {
		_msg_script_valid(false, TTR("Invalid inherited parent name or path"));
		script_ok = false;
	}
	if (script_ok) {
		_msg_script_valid(true, TTR("Script valid"));
		get_ok()->set_disabled(false);
	}

	/* Does script have named classes */

	if (has_named_classes) {
		if (is_new_script_created) {
			class_name->set_editable(true);
			class_name->set_placeholder(TTR("Allowed: a-z, A-Z, 0-9 and _"));
			class_name->set_placeholder_alpha(0.3);
		} else {
			class_name->set_editable(false);
		}
	} else {
		class_name->set_editable(false);
		class_name->set_placeholder(TTR("N/A"));
		class_name->set_placeholder_alpha(1);
	}

	/* Can script inherit from a file */

	if (can_inherit_from_file) {
		parent_browse_button->set_disabled(false);
	} else {
		parent_browse_button->set_disabled(true);
	}

	/* Is script Built-in */

	if (is_built_in) {
		file_path->set_editable(false);
		path_button->set_disabled(true);
		re_check_path = true;
	} else {
		file_path->set_editable(true);
		path_button->set_disabled(false);
		if (re_check_path) {
			re_check_path = false;
			_path_changed(file_path->get_text());
		}
	}

	if (!supports_built_in)
		internal->set_pressed(false);

	/* Is Script created or loaded from existing file */

	if (is_new_script_created) {
		// New Script Created
		get_ok()->set_text(TTR("Create"));
		parent_name->set_editable(true);
		parent_browse_button->set_disabled(false);
		internal->set_disabled(!supports_built_in);
		if (is_built_in) {
			_msg_path_valid(true, TTR("Built-in script (into scene file)"));
		} else {
			if (script_ok) {
				_msg_path_valid(true, TTR("Create new script file"));
			}
		}
	} else {
		// Script Loaded
		get_ok()->set_text(TTR("Load"));
		parent_name->set_editable(false);
		parent_browse_button->set_disabled(true);
		internal->set_disabled(true);
		if (script_ok) {
			_msg_path_valid(true, TTR("Load existing script file"));
		}
	}
}
Example #12
0
void ScriptCreateDialog::_lang_changed(int l) {

	l = language_menu->get_selected();
	ScriptLanguage *language = ScriptServer::get_language(l);

	if (language->has_named_classes()) {
		has_named_classes = true;
	} else {
		has_named_classes = false;
	}

	if (language->supports_builtin_mode()) {
		supports_built_in = true;
	} else {
		supports_built_in = false;
		is_built_in = false;
	}

	if (ScriptServer::get_language(l)->can_inherit_from_file()) {
		can_inherit_from_file = true;
	} else {
		can_inherit_from_file = false;
	}

	String selected_ext = "." + language->get_extension();
	String path = file_path->get_text();
	String extension = "";
	if (path != "") {
		if (path.find(".") >= 0) {
			extension = path.get_extension();
		}

		if (extension.length() == 0) {
			// add extension if none
			path += selected_ext;
			_path_changed(path);
		} else {
			// change extension by selected language
			List<String> extensions;
			// get all possible extensions for script
			for (int l = 0; l < language_menu->get_item_count(); l++) {
				ScriptServer::get_language(l)->get_recognized_extensions(&extensions);
			}

			for (List<String>::Element *E = extensions.front(); E; E = E->next()) {
				if (E->get().nocasecmp_to(extension) == 0) {
					path = path.get_basename() + selected_ext;
					_path_changed(path);
					break;
				}
			}
		}
	} else {
		path = "class" + selected_ext;
		_path_changed(path);
	}
	file_path->set_text(path);

	bool use_templates = language->is_using_templates();
	template_menu->set_disabled(!use_templates);
	template_menu->clear();
	if (use_templates) {

		template_list = EditorSettings::get_singleton()->get_script_templates(language->get_extension());

		String last_lang = EditorSettings::get_singleton()->get_project_metadata("script_setup", "last_selected_language", "");
		String last_template = EditorSettings::get_singleton()->get_project_metadata("script_setup", "last_selected_template", "");

		template_menu->add_item(TTR("Default"));
		for (int i = 0; i < template_list.size(); i++) {
			String s = template_list[i].capitalize();
			template_menu->add_item(s);
			if (language_menu->get_item_text(language_menu->get_selected()) == last_lang && last_template == s) {
				template_menu->select(i + 1);
			}
		}
	} else {

		template_menu->add_item(TTR("N/A"));
		script_template = "";
	}

	_template_changed(template_menu->get_selected());
	EditorSettings::get_singleton()->set_project_metadata("script_setup", "last_selected_language", language_menu->get_item_text(language_menu->get_selected()));

	_update_dialog();
}