summaryrefslogtreecommitdiff
path: root/editor
diff options
context:
space:
mode:
Diffstat (limited to 'editor')
-rw-r--r--editor/animation_editor.cpp18
-rw-r--r--editor/editor_node.cpp6
-rw-r--r--editor/plugins/canvas_item_editor_plugin.cpp4
-rw-r--r--editor/plugins/polygon_2d_editor_plugin.cpp4
-rw-r--r--editor/scene_tree_dock.cpp3
-rw-r--r--editor/script_create_dialog.cpp519
-rw-r--r--editor/script_create_dialog.h18
-rw-r--r--editor/translations/ar.po3
-rw-r--r--editor/translations/bg.po3
-rw-r--r--editor/translations/bn.po3
-rw-r--r--editor/translations/ca.po3
-rw-r--r--editor/translations/cs.po3
-rw-r--r--editor/translations/da.po3
-rw-r--r--editor/translations/de.po3
-rw-r--r--editor/translations/de_CH.po3
-rw-r--r--editor/translations/editor.pot3
-rw-r--r--editor/translations/el.po3
-rw-r--r--editor/translations/es.po3
-rw-r--r--editor/translations/es_AR.po3
-rwxr-xr-xeditor/translations/extract.py3
-rw-r--r--editor/translations/fa.po3
-rw-r--r--editor/translations/fr.po3
-rw-r--r--editor/translations/hu.po3
-rw-r--r--editor/translations/id.po3
-rw-r--r--editor/translations/it.po3
-rw-r--r--editor/translations/ja.po3
-rw-r--r--editor/translations/ko.po3
-rw-r--r--editor/translations/nb.po3
-rw-r--r--editor/translations/nl.po3
-rw-r--r--editor/translations/pl.po3
-rw-r--r--editor/translations/pr.po3
-rw-r--r--editor/translations/pt_BR.po3
-rw-r--r--editor/translations/pt_PT.po3
-rw-r--r--editor/translations/ru.po3
-rw-r--r--editor/translations/sk.po3
-rw-r--r--editor/translations/sl.po3
-rw-r--r--editor/translations/th.po3
-rw-r--r--editor/translations/tr.po3
-rw-r--r--editor/translations/ur_PK.po3
-rw-r--r--editor/translations/zh_CN.po3
-rw-r--r--editor/translations/zh_HK.po3
-rw-r--r--editor/translations/zh_TW.po3
42 files changed, 483 insertions, 194 deletions
diff --git a/editor/animation_editor.cpp b/editor/animation_editor.cpp
index 63ed27e60c..1e6562fcf2 100644
--- a/editor/animation_editor.cpp
+++ b/editor/animation_editor.cpp
@@ -1871,21 +1871,35 @@ void AnimationKeyEditor::_track_editor_gui_input(const InputEvent &p_input) {
if (mb.button_index == BUTTON_WHEEL_UP && mb.pressed) {
if (mb.mod.command) {
+
zoom->set_value(zoom->get_value() + zoom->get_step());
} else {
- v_scroll->set_value(v_scroll->get_value() - v_scroll->get_page() / 8);
+
+ v_scroll->set_value(v_scroll->get_value() - v_scroll->get_page() * mb.factor / 8);
}
}
if (mb.button_index == BUTTON_WHEEL_DOWN && mb.pressed) {
if (mb.mod.command) {
+
zoom->set_value(zoom->get_value() - zoom->get_step());
} else {
- v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() / 8);
+
+ v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() * mb.factor / 8);
}
}
+ if (mb.button_index == BUTTON_WHEEL_RIGHT && mb.pressed) {
+
+ h_scroll->set_value(h_scroll->get_value() - h_scroll->get_page() * mb.factor / 8);
+ }
+
+ if (mb.button_index == BUTTON_WHEEL_LEFT && mb.pressed) {
+
+ v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() * mb.factor / 8);
+ }
+
if (mb.button_index == BUTTON_RIGHT && mb.pressed) {
Point2 mpos = Point2(mb.x, mb.y) - ofs;
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index 5f88a928ca..698066f188 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -1651,7 +1651,7 @@ void EditorNode::_run(bool p_current, const String &p_custom) {
current_option = -1;
//accept->get_cancel()->hide();
- pick_main_scene->set_text(TTR("No main scene has ever been defined, select one?\nYou can change it later in later in \"Project Settings\" under the 'application' category."));
+ pick_main_scene->set_text(TTR("No main scene has ever been defined, select one?\nYou can change it later in \"Project Settings\" under the 'application' category."));
pick_main_scene->popup_centered_minsize();
return;
}
@@ -4400,10 +4400,10 @@ void EditorNode::_toggle_distraction_free_mode() {
}
if (screen == EDITOR_SCRIPT) {
- script_distraction = not script_distraction;
+ script_distraction = !script_distraction;
set_distraction_free_mode(script_distraction);
} else {
- scene_distraction = not scene_distraction;
+ scene_distraction = !scene_distraction;
set_distraction_free_mode(scene_distraction);
}
} else {
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp
index 430a5adeb1..27be6ea8f0 100644
--- a/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/editor/plugins/canvas_item_editor_plugin.cpp
@@ -1049,7 +1049,7 @@ void CanvasItemEditor::_viewport_gui_input(const InputEvent &p_event) {
return;
float prev_zoom = zoom;
- zoom = zoom * 0.95;
+ zoom = zoom * (1 - (0.05 * b.factor));
{
Point2 ofs(b.x, b.y);
ofs = ofs / prev_zoom - ofs / zoom;
@@ -1067,7 +1067,7 @@ void CanvasItemEditor::_viewport_gui_input(const InputEvent &p_event) {
return;
float prev_zoom = zoom;
- zoom = zoom * (1.0 / 0.95);
+ zoom = zoom * ((0.95 + (0.05 * b.factor)) / 0.95);
{
Point2 ofs(b.x, b.y);
ofs = ofs / prev_zoom - ofs / zoom;
diff --git a/editor/plugins/polygon_2d_editor_plugin.cpp b/editor/plugins/polygon_2d_editor_plugin.cpp
index e84e782580..896a26c8e8 100644
--- a/editor/plugins/polygon_2d_editor_plugin.cpp
+++ b/editor/plugins/polygon_2d_editor_plugin.cpp
@@ -522,10 +522,10 @@ void Polygon2DEditor::_uv_input(const InputEvent &p_input) {
} else if (mb.button_index == BUTTON_WHEEL_UP && mb.pressed) {
- uv_zoom->set_value(uv_zoom->get_value() / 0.9);
+ uv_zoom->set_value(uv_zoom->get_value() / (1 - (0.1 * mb.factor)));
} else if (mb.button_index == BUTTON_WHEEL_DOWN && mb.pressed) {
- uv_zoom->set_value(uv_zoom->get_value() * 0.9);
+ uv_zoom->set_value(uv_zoom->get_value() * (1 - (0.1 * mb.factor)));
}
} else if (p_input.type == InputEvent::MOUSE_MOTION) {
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp
index 901b259960..835243e401 100644
--- a/editor/scene_tree_dock.cpp
+++ b/editor/scene_tree_dock.cpp
@@ -362,8 +362,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
else {
String path = selected->get_filename();
script_create_dialog->config(selected->get_class(), path);
- script_create_dialog->popup_centered(Size2(300, 290));
- //script_create_dialog->popup_centered_minsize();
+ script_create_dialog->popup_centered();
}
} break;
diff --git a/editor/script_create_dialog.cpp b/editor/script_create_dialog.cpp
index 15c540e132..1e86d8db4b 100644
--- a/editor/script_create_dialog.cpp
+++ b/editor/script_create_dialog.cpp
@@ -29,12 +29,23 @@
/*************************************************************************/
#include "script_create_dialog.h"
+#include "editor/editor_scale.h"
#include "editor_file_system.h"
#include "global_config.h"
#include "io/resource_saver.h"
#include "os/file_access.h"
#include "script_language.h"
+void ScriptCreateDialog::_notification(int p_what) {
+
+ switch (p_what) {
+ case NOTIFICATION_ENTER_TREE: {
+ path_button->set_icon(get_icon("Folder", "EditorIcons"));
+ parent_browse_button->set_icon(get_icon("Folder", "EditorIcons"));
+ }
+ }
+}
+
void ScriptCreateDialog::config(const String &p_base_name, const String &p_base_path) {
class_name->set_text("");
@@ -46,6 +57,8 @@ void ScriptCreateDialog::config(const String &p_base_name, const String &p_base_
initial_bp = "";
file_path->set_text("");
}
+ _lang_changed(current_language);
+ _parent_name_changed(parent_name->get_text());
_class_name_changed("");
_path_changed(file_path->get_text());
}
@@ -85,54 +98,40 @@ bool ScriptCreateDialog::_validate(const String &p_string) {
void ScriptCreateDialog::_class_name_changed(const String &p_name) {
- if (!_validate(parent_name->get_text())) {
- error_label->set_text(TTR("Invalid parent class name or path"));
- error_label->add_color_override("font_color", Color(1, 0.4, 0.0, 0.8));
- } else if (class_name->is_editable()) {
- if (class_name->get_text() == "") {
- error_label->set_text(TTR("Valid chars:") + " a-z A-Z 0-9 _");
- error_label->add_color_override("font_color", Color(1, 1, 1, 0.6));
- } else if (!_validate(class_name->get_text())) {
- error_label->set_text(TTR("Invalid class name"));
- error_label->add_color_override("font_color", Color(1, 0.2, 0.2, 0.8));
- } else {
- error_label->set_text(TTR("Valid name"));
- error_label->add_color_override("font_color", Color(0, 1.0, 0.8, 0.8));
- }
+ if (_validate(class_name->get_text())) {
+ is_class_name_valid = true;
} else {
+ is_class_name_valid = false;
+ }
+ _update_dialog();
+}
- error_label->set_text(TTR("N/A"));
- error_label->add_color_override("font_color", Color(0, 1.0, 0.8, 0.8));
+void ScriptCreateDialog::_parent_name_changed(const String &p_parent) {
+
+ if (_validate(parent_name->get_text())) {
+ is_parent_name_valid = true;
+ } else {
+ is_parent_name_valid = false;
}
+ _update_dialog();
}
void ScriptCreateDialog::ok_pressed() {
- if (create_new) {
+ if (is_new_script_created) {
_create_new();
} else {
_load_exist();
}
- create_new = true;
- _update_controls();
+ is_new_script_created = true;
+ _update_dialog();
}
void ScriptCreateDialog::_create_new() {
- if (class_name->is_editable() && !_validate(class_name->get_text())) {
- alert->set_text(TTR("Class name is invalid!"));
- alert->popup_centered_minsize();
- return;
- }
- if (!_validate(parent_name->get_text())) {
- alert->set_text(TTR("Parent class name is invalid!"));
- alert->popup_centered_minsize();
- return;
- }
-
String cname;
- if (class_name->is_editable())
+ if (has_named_classes)
cname = class_name->get_text();
Ref<Script> scr = ScriptServer::get_language(language_menu->get_selected())->get_template(cname, parent_name->get_text());
@@ -143,18 +142,13 @@ void ScriptCreateDialog::_create_new() {
if (cname != "")
scr->set_name(cname);
- if (!internal->is_pressed()) {
+ if (!is_built_in) {
String lpath = GlobalConfig::get_singleton()->localize_path(file_path->get_text());
scr->set_path(lpath);
- if (!path_valid) {
- alert->set_text(TTR("Invalid path!"));
- alert->popup_centered_minsize();
- return;
- }
Error err = ResourceSaver::save(lpath, scr, ResourceSaver::FLAG_CHANGE_PATH);
if (err != OK) {
- alert->set_text(TTR("Could not create script in filesystem."));
- alert->popup_centered_minsize();
+ alert->set_text(TTR("Error - Could not create script in filesystem."));
+ alert->popup_centered();
return;
}
}
@@ -168,9 +162,9 @@ void ScriptCreateDialog::_load_exist() {
String path = file_path->get_text();
RES p_script = ResourceLoader::load(path, "Script");
if (p_script.is_null()) {
- alert->get_ok()->set_text(TTR("Ugh"));
+ alert->get_ok()->set_text(TTR("OK"));
alert->set_text(vformat(TTR("Error loading script from %s"), path));
- alert->popup_centered_minsize();
+ alert->popup_centered();
return;
}
@@ -182,55 +176,59 @@ void ScriptCreateDialog::_lang_changed(int l) {
l = language_menu->get_selected();
if (ScriptServer::get_language(l)->has_named_classes()) {
- class_name->set_editable(true);
+ has_named_classes = true;
} else {
- class_name->set_editable(false);
+ has_named_classes = false;
}
if (ScriptServer::get_language(l)->can_inherit_from_file()) {
- parent_browse_button->show();
+ can_inherit_from_file = true;
} else {
- parent_browse_button->hide();
+ can_inherit_from_file = false;
}
String selected_ext = "." + ScriptServer::get_language(l)->get_extension();
String path = file_path->get_text();
String extension = "";
- 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);
+ if (path != "") {
+ if (path.find(".") >= 0) {
+ extension = path.get_extension();
}
- 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;
+ 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;
+ }
}
}
+ file_path->set_text(path);
}
- file_path->set_text(path);
- _class_name_changed(class_name->get_text());
+
+ _update_dialog();
}
void ScriptCreateDialog::_built_in_pressed() {
if (internal->is_pressed()) {
- path_vb->hide();
+ is_built_in = true;
} else {
- path_vb->show();
+ is_built_in = false;
}
+ _update_dialog();
}
void ScriptCreateDialog::_browse_path(bool browse_parent) {
@@ -269,40 +267,45 @@ void ScriptCreateDialog::_file_selected(const String &p_file) {
void ScriptCreateDialog::_path_changed(const String &p_path) {
- path_valid = false;
+ is_path_valid = false;
+ is_new_script_created = true;
String p = p_path;
if (p == "") {
-
- path_error_label->set_text(TTR("Path is empty"));
- path_error_label->add_color_override("font_color", Color(1, 0.4, 0.0, 0.8));
+ _msg_path_valid(false, TTR("Path is empty"));
+ _update_dialog();
return;
}
p = GlobalConfig::get_singleton()->localize_path(p);
if (!p.begins_with("res://")) {
-
- path_error_label->set_text(TTR("Path is not local"));
- path_error_label->add_color_override("font_color", Color(1, 0.4, 0.0, 0.8));
+ _msg_path_valid(false, TTR("Path is not local"));
+ _update_dialog();
return;
}
if (p.find("/") || p.find("\\")) {
DirAccess *d = DirAccess::create(DirAccess::ACCESS_RESOURCES);
-
if (d->change_dir(p.get_base_dir()) != OK) {
-
- path_error_label->set_text(TTR("Invalid base path"));
- path_error_label->add_color_override("font_color", Color(1, 0.4, 0.0, 0.8));
+ _msg_path_valid(false, TTR("Invalid base path"));
memdelete(d);
+ _update_dialog();
return;
}
memdelete(d);
}
- FileAccess *f = FileAccess::create(FileAccess::ACCESS_RESOURCES);
- create_new = !f->file_exists(p);
+ /* Does file already exist */
+
+ DirAccess *f = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ if (f->file_exists(p) && !(f->current_is_dir())) {
+ is_new_script_created = false;
+ is_path_valid = true;
+ }
memdelete(f);
+ _update_dialog();
+
+ /* Check file extension */
String extension = p.get_extension();
List<String> extensions;
@@ -313,45 +316,156 @@ void ScriptCreateDialog::_path_changed(const String &p_path) {
}
bool found = false;
+ bool match = false;
int index = 0;
for (List<String>::Element *E = extensions.front(); E; E = E->next()) {
if (E->get().nocasecmp_to(extension) == 0) {
- language_menu->select(index); // change Language option by extension
+ //FIXME (?) - changing language this way doesn't update controls, needs rework
+ //language_menu->select(index); // change Language option by extension
found = true;
+ if (E->get() == ScriptServer::get_language(language_menu->get_selected())->get_extension()) {
+ match = true;
+ }
break;
}
index++;
}
if (!found) {
- path_error_label->set_text(TTR("Invalid extension"));
- path_error_label->add_color_override("font_color", Color(1, 0.4, 0.0, 0.8));
+ _msg_path_valid(false, TTR("Invalid extension"));
+ _update_dialog();
+ return;
+ }
+
+ if (!match) {
+ _msg_path_valid(false, TTR("Wrong extension chosen"));
+ _update_dialog();
return;
}
- _update_controls();
+ /* All checks passed */
+
+ is_path_valid = true;
+ _update_dialog();
+}
+
+void ScriptCreateDialog::_msg_script_valid(bool valid, const String &p_msg) {
+
+ error_label->set_text(TTR(p_msg));
+ if (valid) {
+ error_label->add_color_override("font_color", Color(0, 1.0, 0.8, 0.8));
+ } else {
+ error_label->add_color_override("font_color", Color(1, 0.2, 0.2, 0.8));
+ }
+}
- path_error_label->add_color_override("font_color", Color(0, 1.0, 0.8, 0.8));
+void ScriptCreateDialog::_msg_path_valid(bool valid, const String &p_msg) {
- path_valid = true;
+ path_error_label->set_text(TTR(p_msg));
+ if (valid) {
+ path_error_label->add_color_override("font_color", Color(0, 1.0, 0.8, 0.8));
+ } else {
+ path_error_label->add_color_override("font_color", Color(1, 0.4, 0.0, 0.8));
+ }
}
-void ScriptCreateDialog::_update_controls() {
+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 (create_new) {
- path_error_label->set_text(TTR("Create new script"));
+ 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());
+ }
+ }
+
+ /* 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(false);
+ 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 {
- path_error_label->set_text(TTR("Load existing script"));
+ // 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"));
+ }
}
- parent_name->set_editable(create_new);
- internal->set_disabled(!create_new);
}
void ScriptCreateDialog::_bind_methods() {
ClassDB::bind_method("_class_name_changed", &ScriptCreateDialog::_class_name_changed);
+ ClassDB::bind_method("_parent_name_changed", &ScriptCreateDialog::_parent_name_changed);
ClassDB::bind_method("_lang_changed", &ScriptCreateDialog::_lang_changed);
ClassDB::bind_method("_built_in_pressed", &ScriptCreateDialog::_built_in_pressed);
ClassDB::bind_method("_browse_path", &ScriptCreateDialog::_browse_path);
@@ -362,37 +476,100 @@ void ScriptCreateDialog::_bind_methods() {
ScriptCreateDialog::ScriptCreateDialog() {
- /* SNAP DIALOG */
+ editor_settings = EditorSettings::get_singleton();
+ GridContainer *gc = memnew(GridContainer);
VBoxContainer *vb = memnew(VBoxContainer);
- add_child(vb);
- //set_child_rect(vb);
+ HBoxContainer *hb = memnew(HBoxContainer);
+ Label *l = memnew(Label);
+ Control *empty = memnew(Control);
+ Control *empty_h = memnew(Control);
+ Control *empty_v = memnew(Control);
+ PanelContainer *pc = memnew(PanelContainer);
- class_name = memnew(LineEdit);
- VBoxContainer *vb2 = memnew(VBoxContainer);
- vb2->add_child(class_name);
- class_name->connect("text_changed", this, "_class_name_changed");
- error_label = memnew(Label);
- error_label->set_text("valid chars: a-z A-Z 0-9 _");
- error_label->set_align(Label::ALIGN_CENTER);
- vb2->add_child(error_label);
- vb->add_margin_child(TTR("Class Name:"), vb2);
+ /* DIALOG */
- HBoxContainer *hb1 = memnew(HBoxContainer);
- parent_name = memnew(LineEdit);
- parent_name->connect("text_changed", this, "_class_name_changed");
- parent_name->set_h_size_flags(SIZE_EXPAND_FILL);
- hb1->add_child(parent_name);
- parent_browse_button = memnew(Button);
- parent_browse_button->set_text(" .. ");
- parent_browse_button->connect("pressed", this, "_browse_path", varray(true));
- hb1->add_child(parent_browse_button);
- parent_browse_button->hide();
- vb->add_margin_child(TTR("Inherits:"), hb1);
- is_browsing_parent = false;
+ /* Main Controls */
+
+ gc = memnew(GridContainer);
+ gc->set_columns(2);
+
+ /* Error Stylebox Background */
+
+ StyleBoxFlat *sb = memnew(StyleBoxFlat);
+ sb->set_bg_color(Color(0, 0, 0, 0.05));
+ sb->set_light_color(Color(1, 1, 1, 0.05));
+ sb->set_dark_color(Color(1, 1, 1, 0.05));
+ sb->set_border_blend(false);
+ sb->set_border_size(1);
+ sb->set_default_margin(MARGIN_TOP, 10.0 * EDSCALE);
+ sb->set_default_margin(MARGIN_BOTTOM, 10.0 * EDSCALE);
+ sb->set_default_margin(MARGIN_LEFT, 10.0 * EDSCALE);
+ sb->set_default_margin(MARGIN_RIGHT, 10.0 * EDSCALE);
+
+ /* Error Messages Field */
+
+ vb = memnew(VBoxContainer);
+
+ hb = memnew(HBoxContainer);
+ l = memnew(Label);
+ l->set_text(" - ");
+ hb->add_child(l);
+ error_label = memnew(Label);
+ error_label->set_text(TTR("Error!"));
+ error_label->set_align(Label::ALIGN_LEFT);
+ hb->add_child(error_label);
+ vb->add_child(hb);
+
+ hb = memnew(HBoxContainer);
+ l = memnew(Label);
+ l->set_text(" - ");
+ hb->add_child(l);
+ path_error_label = memnew(Label);
+ path_error_label->set_text(TTR("Error!"));
+ path_error_label->set_align(Label::ALIGN_LEFT);
+ hb->add_child(path_error_label);
+ vb->add_child(hb);
+
+ pc = memnew(PanelContainer);
+ pc->set_h_size_flags(Control::SIZE_FILL);
+ pc->add_style_override("panel", sb);
+ pc->add_child(vb);
+
+ /* Margins */
+
+ empty_h = memnew(Control);
+ empty_h->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ empty_h->set_v_size_flags(Control::SIZE_EXPAND_FILL);
+ empty_h->set_custom_minimum_size(Size2(0, 10 * EDSCALE));
+ empty_v = memnew(Control);
+ empty_v->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ empty_v->set_v_size_flags(Control::SIZE_EXPAND_FILL);
+ empty_v->set_custom_minimum_size(Size2(10, 0 * EDSCALE));
+
+ vb = memnew(VBoxContainer);
+ vb->add_child(empty_h->duplicate());
+ vb->add_child(gc);
+ vb->add_child(empty_h->duplicate());
+ vb->add_child(pc);
+ vb->add_child(empty_h->duplicate());
+ hb = memnew(HBoxContainer);
+ hb->add_child(empty_v->duplicate());
+ hb->add_child(vb);
+ hb->add_child(empty_v->duplicate());
+
+ add_child(hb);
+
+ /* Language */
language_menu = memnew(OptionButton);
- vb->add_margin_child(TTR("Language"), language_menu);
+ language_menu->set_custom_minimum_size(Size2(250, 0) * EDSCALE);
+ language_menu->set_h_size_flags(SIZE_EXPAND_FILL);
+ l = memnew(Label);
+ l->set_text(TTR("Language"));
+ l->set_align(Label::ALIGN_RIGHT);
+ gc->add_child(l);
+ gc->add_child(language_menu);
int default_lang = 0;
for (int i = 0; i < ScriptServer::get_language_count(); i++) {
@@ -404,60 +581,108 @@ ScriptCreateDialog::ScriptCreateDialog() {
}
}
- editor_settings = EditorSettings::get_singleton();
String last_selected_language = editor_settings->get_project_metadata("script_setup", "last_selected_language", "");
if (last_selected_language != "") {
for (int i = 0; i < language_menu->get_item_count(); i++) {
if (language_menu->get_item_text(i) == last_selected_language) {
language_menu->select(i);
+ current_language = i;
break;
}
}
} else {
language_menu->select(default_lang);
+ current_language = default_lang;
}
language_menu->connect("item_selected", this, "_lang_changed");
- //parent_name->set_text();
+ /* Inherits */
- vb2 = memnew(VBoxContainer);
- path_vb = memnew(VBoxContainer);
- vb2->add_child(path_vb);
+ hb = memnew(HBoxContainer);
+ hb->set_h_size_flags(SIZE_EXPAND_FILL);
+ parent_name = memnew(LineEdit);
+ parent_name->connect("text_changed", this, "_parent_name_changed");
+ parent_name->set_h_size_flags(SIZE_EXPAND_FILL);
+ hb->add_child(parent_name);
+ parent_browse_button = memnew(Button);
+ parent_browse_button->set_flat(true);
+ parent_browse_button->connect("pressed", this, "_browse_path", varray(true));
+ hb->add_child(parent_browse_button);
+ l = memnew(Label);
+ l->set_text(TTR("Inherits"));
+ l->set_align(Label::ALIGN_RIGHT);
+ gc->add_child(l);
+ gc->add_child(hb);
+ is_browsing_parent = false;
- HBoxContainer *hbc = memnew(HBoxContainer);
- file_path = memnew(LineEdit);
- file_path->connect("text_changed", this, "_path_changed");
- hbc->add_child(file_path);
- file_path->set_h_size_flags(SIZE_EXPAND_FILL);
- Button *b = memnew(Button);
- b->set_text(" .. ");
- b->connect("pressed", this, "_browse_path", varray(false));
- hbc->add_child(b);
- path_vb->add_child(hbc);
- path_error_label = memnew(Label);
- path_vb->add_child(path_error_label);
- path_error_label->set_text(TTR("Error!"));
- path_error_label->set_align(Label::ALIGN_CENTER);
+ /* Class Name */
- internal = memnew(CheckButton);
- internal->set_text(TTR("Built-In Script"));
- vb2->add_child(internal);
- internal->connect("pressed", this, "_built_in_pressed");
+ class_name = memnew(LineEdit);
+ class_name->connect("text_changed", this, "_class_name_changed");
+ class_name->set_h_size_flags(SIZE_EXPAND_FILL);
+ l = memnew(Label);
+ l->set_text(TTR("Class Name"));
+ l->set_align(Label::ALIGN_RIGHT);
+ gc->add_child(l);
+ gc->add_child(class_name);
- vb->add_margin_child(TTR("Path:"), vb2);
+ /* Built-in Script */
- set_size(Size2(200, 150));
- set_hide_on_ok(false);
- set_title(TTR("Attach Node Script"));
+ internal = memnew(CheckButton);
+ internal->connect("pressed", this, "_built_in_pressed");
+ hb = memnew(HBoxContainer);
+ empty = memnew(Control);
+ hb->add_child(internal);
+ hb->add_child(empty);
+ l = memnew(Label);
+ l->set_text(TTR("Built-in Script"));
+ l->set_align(Label::ALIGN_RIGHT);
+ gc->add_child(l);
+ gc->add_child(hb);
+
+ /* Path */
+
+ hb = memnew(HBoxContainer);
+ file_path = memnew(LineEdit);
+ file_path->connect("text_changed", this, "_path_changed");
+ file_path->set_h_size_flags(SIZE_EXPAND_FILL);
+ hb->add_child(file_path);
+ path_button = memnew(Button);
+ path_button->set_flat(true);
+ path_button->connect("pressed", this, "_browse_path", varray(false));
+ hb->add_child(path_button);
+ l = memnew(Label);
+ l->set_text(TTR("Path"));
+ l->set_align(Label::ALIGN_RIGHT);
+ gc->add_child(l);
+ gc->add_child(hb);
+
+ /* Dialog Setup */
file_browse = memnew(EditorFileDialog);
file_browse->connect("file_selected", this, "_file_selected");
add_child(file_browse);
get_ok()->set_text(TTR("Create"));
alert = memnew(AcceptDialog);
+ alert->set_as_minsize();
+ alert->get_label()->set_autowrap(true);
+ alert->get_label()->set_align(Label::ALIGN_CENTER);
+ alert->get_label()->set_valign(Label::VALIGN_CENTER);
+ alert->get_label()->set_custom_minimum_size(Size2(325, 60) * EDSCALE);
add_child(alert);
- _lang_changed(0);
- create_new = true;
+ set_as_minsize();
+ set_hide_on_ok(false);
+ set_title(TTR("Attach Node Script"));
+
+ is_parent_name_valid = false;
+ is_class_name_valid = false;
+ is_path_valid = false;
+
+ has_named_classes = false;
+ can_inherit_from_file = false;
+ is_built_in = false;
+
+ is_new_script_created = true;
}
diff --git a/editor/script_create_dialog.h b/editor/script_create_dialog.h
index 113d4a468c..862d4f88f2 100644
--- a/editor/script_create_dialog.h
+++ b/editor/script_create_dialog.h
@@ -34,8 +34,10 @@
#include "editor/editor_settings.h"
#include "scene/gui/check_button.h"
#include "scene/gui/dialogs.h"
+#include "scene/gui/grid_container.h"
#include "scene/gui/line_edit.h"
#include "scene/gui/option_button.h"
+#include "scene/gui/panel_container.h"
class ScriptCreateDialog : public ConfirmationDialog {
GDCLASS(ScriptCreateDialog, ConfirmationDialog);
@@ -47,6 +49,7 @@ class ScriptCreateDialog : public ConfirmationDialog {
Button *parent_browse_button;
OptionButton *language_menu;
LineEdit *file_path;
+ Button *path_button;
EditorFileDialog *file_browse;
CheckButton *internal;
VBoxContainer *path_vb;
@@ -56,20 +59,33 @@ class ScriptCreateDialog : public ConfirmationDialog {
bool is_browsing_parent;
String initial_bp;
EditorSettings *editor_settings;
+ bool is_new_script_created;
+ bool is_path_valid;
+ bool has_named_classes;
+ bool can_inherit_from_file;
+ bool is_parent_name_valid;
+ bool is_class_name_valid;
+ bool is_built_in;
+ int current_language;
+ bool re_check_path;
void _path_changed(const String &p_path = String());
void _lang_changed(int l = 0);
void _built_in_pressed();
bool _validate(const String &p_strin);
void _class_name_changed(const String &p_name);
+ void _parent_name_changed(const String &p_parent);
void _browse_path(bool browse_parent);
void _file_selected(const String &p_file);
virtual void ok_pressed();
void _create_new();
void _load_exist();
- void _update_controls();
+ void _msg_script_valid(bool valid, const String &p_msg = String());
+ void _msg_path_valid(bool valid, const String &p_msg = String());
+ void _update_dialog();
protected:
+ void _notification(int p_what);
static void _bind_methods();
public:
diff --git a/editor/translations/ar.po b/editor/translations/ar.po
index 766d8f9676..867302b657 100644
--- a/editor/translations/ar.po
+++ b/editor/translations/ar.po
@@ -1,5 +1,6 @@
# Arabic translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# athomield <athomield@hotmail.com>, 2017.
diff --git a/editor/translations/bg.po b/editor/translations/bg.po
index b23fa3a8fb..f884b33773 100644
--- a/editor/translations/bg.po
+++ b/editor/translations/bg.po
@@ -1,5 +1,6 @@
# Bulgarian translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Bojidar Marinov <bojidar.marinov.bg@gmail.com>, 2016.
diff --git a/editor/translations/bn.po b/editor/translations/bn.po
index 224c00cf5d..3e4dec7656 100644
--- a/editor/translations/bn.po
+++ b/editor/translations/bn.po
@@ -1,5 +1,6 @@
# Bengali translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Abu Md. Maruf Sarker <maruf.webdev@gmail.com>, 2016-2017.
diff --git a/editor/translations/ca.po b/editor/translations/ca.po
index 581e862716..6d7b245e58 100644
--- a/editor/translations/ca.po
+++ b/editor/translations/ca.po
@@ -1,5 +1,6 @@
# Catalan translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Roger BR <drai_kin@hotmail.com>, 2016.
diff --git a/editor/translations/cs.po b/editor/translations/cs.po
index 89d88a234f..4643a9ac21 100644
--- a/editor/translations/cs.po
+++ b/editor/translations/cs.po
@@ -1,5 +1,6 @@
# Czech translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Jan 'spl!te' Kondelík <j.kondelik@centrum.cz>, 2016.
diff --git a/editor/translations/da.po b/editor/translations/da.po
index b84be76247..ba9d018e5a 100644
--- a/editor/translations/da.po
+++ b/editor/translations/da.po
@@ -1,5 +1,6 @@
# Danish translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# David Lamhauge <davidlamhauge@gmail.com>, 2016.
diff --git a/editor/translations/de.po b/editor/translations/de.po
index ba6805d1f1..a10eaefa29 100644
--- a/editor/translations/de.po
+++ b/editor/translations/de.po
@@ -1,5 +1,6 @@
# German translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Alexander Mahr <alex.mahr@gmail.com>, 2016.
diff --git a/editor/translations/de_CH.po b/editor/translations/de_CH.po
index aeae6a5537..183f09e9a6 100644
--- a/editor/translations/de_CH.po
+++ b/editor/translations/de_CH.po
@@ -1,5 +1,6 @@
# Swiss High German translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Christian Fisch <christian.fiesel@gmail.com>, 2016.
diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot
index 5b62f132fa..5f50c159b8 100644
--- a/editor/translations/editor.pot
+++ b/editor/translations/editor.pot
@@ -1,5 +1,6 @@
# LANGUAGE translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
diff --git a/editor/translations/el.po b/editor/translations/el.po
index 292c5a6fd3..0879b693ff 100644
--- a/editor/translations/el.po
+++ b/editor/translations/el.po
@@ -1,5 +1,6 @@
# Greek translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# gtsiam <gtsiam@windowslive.com>, 2017.
diff --git a/editor/translations/es.po b/editor/translations/es.po
index a7b9553892..f01c84718b 100644
--- a/editor/translations/es.po
+++ b/editor/translations/es.po
@@ -1,5 +1,6 @@
# Spanish translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Alejandro Alvarez <eliluminado00@gmail.com>, 2017.
diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po
index 6c9579916f..f826517b27 100644
--- a/editor/translations/es_AR.po
+++ b/editor/translations/es_AR.po
@@ -1,5 +1,6 @@
# Spanish (Argentina) translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Lisandro Lorea <lisandrolorea@gmail.com>, 2016-2017.
diff --git a/editor/translations/extract.py b/editor/translations/extract.py
index 616fec17a0..5e6c894936 100755
--- a/editor/translations/extract.py
+++ b/editor/translations/extract.py
@@ -38,7 +38,8 @@ unique_str = []
unique_loc = {}
main_po = """
# LANGUAGE translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
diff --git a/editor/translations/fa.po b/editor/translations/fa.po
index 2ec9b18d78..e8402fcb25 100644
--- a/editor/translations/fa.po
+++ b/editor/translations/fa.po
@@ -1,5 +1,6 @@
# Persian translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# alabd14313 <alabd14313@yahoo.com>, 2016.
diff --git a/editor/translations/fr.po b/editor/translations/fr.po
index 1418e6f493..8db0cf2555 100644
--- a/editor/translations/fr.po
+++ b/editor/translations/fr.po
@@ -1,5 +1,6 @@
# French translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Brice <bbric@free.fr>, 2016.
diff --git a/editor/translations/hu.po b/editor/translations/hu.po
index 8cb6c2caf1..2d1b36d2ea 100644
--- a/editor/translations/hu.po
+++ b/editor/translations/hu.po
@@ -1,5 +1,6 @@
# Hungarian translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Varga Dániel <danikah.danikah@gmail.com>, 2016.
diff --git a/editor/translations/id.po b/editor/translations/id.po
index 2126d324dd..2abf4090c8 100644
--- a/editor/translations/id.po
+++ b/editor/translations/id.po
@@ -1,5 +1,6 @@
# Indonesian translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Abdul Aziz Muslim Alqudsy <abdul.aziz.muslim.alqudsy@gmail.com>, 2016.
diff --git a/editor/translations/it.po b/editor/translations/it.po
index e055c6996a..08d04d296b 100644
--- a/editor/translations/it.po
+++ b/editor/translations/it.po
@@ -1,5 +1,6 @@
# Italian translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Dario Bonfanti <bonfi.96@hotmail.it>, 2016-2017.
diff --git a/editor/translations/ja.po b/editor/translations/ja.po
index f34e0d118b..beeaf264a2 100644
--- a/editor/translations/ja.po
+++ b/editor/translations/ja.po
@@ -1,5 +1,6 @@
# Japanese translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# akirakido <achts.y@gmail.com>, 2016.
diff --git a/editor/translations/ko.po b/editor/translations/ko.po
index 769089b860..08b10d2f7a 100644
--- a/editor/translations/ko.po
+++ b/editor/translations/ko.po
@@ -1,5 +1,6 @@
# Korean translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# 박한얼 (volzhs) <volzhs@gmail.com>, 2016-2017.
diff --git a/editor/translations/nb.po b/editor/translations/nb.po
index e7a64f501a..7ce577ebfa 100644
--- a/editor/translations/nb.po
+++ b/editor/translations/nb.po
@@ -1,5 +1,6 @@
# Norwegian Bokmål translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Anonymous <GentleSaucepan@protonmail.com>, 2017.
diff --git a/editor/translations/nl.po b/editor/translations/nl.po
index 55407145d2..f0d54ebd9d 100644
--- a/editor/translations/nl.po
+++ b/editor/translations/nl.po
@@ -1,5 +1,6 @@
# Dutch translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Aram Nap <xyphex.aram@gmail.com>, 2017
diff --git a/editor/translations/pl.po b/editor/translations/pl.po
index 8eb2e9c884..ccee170c57 100644
--- a/editor/translations/pl.po
+++ b/editor/translations/pl.po
@@ -1,5 +1,6 @@
# Polish translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# 8-bit Pixel <dawdejw@gmail.com>, 2016.
diff --git a/editor/translations/pr.po b/editor/translations/pr.po
index 4df9c04664..4629c24f45 100644
--- a/editor/translations/pr.po
+++ b/editor/translations/pr.po
@@ -1,5 +1,6 @@
# Pirate translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Zion Nimchuk <zionnimchuk@gmail.com>, 2016-2017.
diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po
index 75be59068c..25055a0b7b 100644
--- a/editor/translations/pt_BR.po
+++ b/editor/translations/pt_BR.po
@@ -1,5 +1,6 @@
# Portuguese (Brazil) translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Allyson Souza <allyson_as@outlook.com>, 2017.
diff --git a/editor/translations/pt_PT.po b/editor/translations/pt_PT.po
index 913455b999..fa4629c5c1 100644
--- a/editor/translations/pt_PT.po
+++ b/editor/translations/pt_PT.po
@@ -1,5 +1,6 @@
# Portuguese (Portugal) translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# António Sarmento <antonio.luis.sarmento@gmail.com>, 2016.
diff --git a/editor/translations/ru.po b/editor/translations/ru.po
index 9f7aa6e26a..0c4a29fb63 100644
--- a/editor/translations/ru.po
+++ b/editor/translations/ru.po
@@ -1,5 +1,6 @@
# Russian translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# DimOkGamer <dimokgamer@gmail.com>, 2016-2017.
diff --git a/editor/translations/sk.po b/editor/translations/sk.po
index 697def1043..b0bee6aa6f 100644
--- a/editor/translations/sk.po
+++ b/editor/translations/sk.po
@@ -1,5 +1,6 @@
# Slovak translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# J08nY <johnenter@gmail.com>, 2016.
diff --git a/editor/translations/sl.po b/editor/translations/sl.po
index fad12d7f13..ea634658ce 100644
--- a/editor/translations/sl.po
+++ b/editor/translations/sl.po
@@ -1,5 +1,6 @@
# Slovenian translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# matevž lapajne <sivar.lapajne@gmail.com>, 2016.
diff --git a/editor/translations/th.po b/editor/translations/th.po
index 79cdaf6b10..b31532f3bf 100644
--- a/editor/translations/th.po
+++ b/editor/translations/th.po
@@ -1,5 +1,6 @@
# Thai translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Poommetee Ketson <poommetee@protonmail.com>, 2017.
diff --git a/editor/translations/tr.po b/editor/translations/tr.po
index 20a794b34a..b4d8975649 100644
--- a/editor/translations/tr.po
+++ b/editor/translations/tr.po
@@ -1,5 +1,6 @@
# Turkish translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Aprın Çor Tigin <kabusturk38@gmail.com>, 2016-2017.
diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po
index 651aa62001..ef3e3b30ca 100644
--- a/editor/translations/ur_PK.po
+++ b/editor/translations/ur_PK.po
@@ -1,5 +1,6 @@
# Urdu (Pakistan) translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Muhammad Ali <ali@codeonion.com>, 2016.
diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po
index 87ca113ce2..f3afcab79d 100644
--- a/editor/translations/zh_CN.po
+++ b/editor/translations/zh_CN.po
@@ -1,5 +1,6 @@
# Chinese (China) translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# 纯洁的坏蛋 <tqj.zyy@gmail.com>, 2016.
diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po
index dfac75ecab..e49582e901 100644
--- a/editor/translations/zh_HK.po
+++ b/editor/translations/zh_HK.po
@@ -1,5 +1,6 @@
# Chinese (Honk Kong) translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# Wesley (zx-wt) <ZX_WT@ymail.com>, 2016.
diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po
index 48b76484e0..7836cd2f76 100644
--- a/editor/translations/zh_TW.po
+++ b/editor/translations/zh_TW.po
@@ -1,5 +1,6 @@
# Chinese (Taiwan) translation of the Godot Engine editor
-# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
# popcade <popcade@gmail.com>, 2016.