summaryrefslogtreecommitdiffstats
path: root/editor
diff options
context:
space:
mode:
Diffstat (limited to 'editor')
-rw-r--r--editor/editor_node.cpp19
-rw-r--r--editor/editor_node.h3
-rw-r--r--editor/localization_editor.cpp41
3 files changed, 41 insertions, 22 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index 184176391a..f248d03140 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -1202,7 +1202,7 @@ void EditorNode::_reload_modified_scenes() {
editor_data.set_edited_scene(i);
_remove_edited_scene(false);
- Error err = load_scene(filename, false, false, true, false, true);
+ Error err = load_scene(filename, false, false, false, true);
if (err != OK) {
ERR_PRINT(vformat("Failed to load scene: %s", filename));
}
@@ -3931,7 +3931,7 @@ int EditorNode::new_scene() {
return idx;
}
-Error EditorNode::load_scene(const String &p_scene, bool p_ignore_broken_deps, bool p_set_inherited, bool p_clear_errors, bool p_force_open_imported, bool p_silent_change_tab) {
+Error EditorNode::load_scene(const String &p_scene, bool p_ignore_broken_deps, bool p_set_inherited, bool p_force_open_imported, bool p_silent_change_tab) {
if (!is_inside_tree()) {
defer_load_scene = p_scene;
return OK;
@@ -3954,10 +3954,6 @@ Error EditorNode::load_scene(const String &p_scene, bool p_ignore_broken_deps, b
}
}
- if (p_clear_errors && !load_errors_queued_to_display) {
- load_errors->clear();
- }
-
String lpath = ProjectSettings::get_singleton()->localize_path(p_scene);
if (!lpath.begins_with("res://")) {
@@ -4935,6 +4931,12 @@ void EditorNode::_progress_dialog_visibility_changed() {
}
}
+void EditorNode::_load_error_dialog_visibility_changed() {
+ if (!load_error_dialog->is_visible()) {
+ load_errors->clear();
+ }
+}
+
String EditorNode::_get_system_info() const {
String distribution_name = OS::get_singleton()->get_distribution_name();
if (distribution_name.is_empty()) {
@@ -5915,7 +5917,7 @@ void EditorNode::reload_scene(const String &p_path) {
// Reload scene.
_remove_scene(scene_idx, false);
- load_scene(p_path, true, false, true, true);
+ load_scene(p_path, true, false, true);
// Adjust index so tab is back a the previous position.
editor_data.move_edited_scene_to_index(scene_idx);
@@ -6441,7 +6443,7 @@ void EditorNode::_inherit_imported(const String &p_action) {
}
void EditorNode::_open_imported() {
- load_scene(open_import_request, true, false, true, true);
+ load_scene(open_import_request, true, false, true);
}
void EditorNode::dim_editor(bool p_dimming) {
@@ -7848,6 +7850,7 @@ EditorNode::EditorNode() {
load_error_dialog->set_unparent_when_invisible(true);
load_error_dialog->add_child(load_errors);
load_error_dialog->set_title(TTR("Load Errors"));
+ load_error_dialog->connect(SceneStringName(visibility_changed), callable_mp(this, &EditorNode::_load_error_dialog_visibility_changed));
execute_outputs = memnew(RichTextLabel);
execute_outputs->set_selection_enabled(true);
diff --git a/editor/editor_node.h b/editor/editor_node.h
index 109cacdf0e..7ef38b4edb 100644
--- a/editor/editor_node.h
+++ b/editor/editor_node.h
@@ -660,6 +660,7 @@ private:
void _remove_all_not_owned_children(Node *p_node, Node *p_owner);
void _progress_dialog_visibility_changed();
+ void _load_error_dialog_visibility_changed();
protected:
friend class FileSystemDock;
@@ -778,7 +779,7 @@ public:
void fix_dependencies(const String &p_for_file);
int new_scene();
- Error load_scene(const String &p_scene, bool p_ignore_broken_deps = false, bool p_set_inherited = false, bool p_clear_errors = true, bool p_force_open_imported = false, bool p_silent_change_tab = false);
+ Error load_scene(const String &p_scene, bool p_ignore_broken_deps = false, bool p_set_inherited = false, bool p_force_open_imported = false, bool p_silent_change_tab = false);
Error load_resource(const String &p_resource, bool p_ignore_broken_deps = false);
HashMap<StringName, Variant> get_modified_properties_for_node(Node *p_node, bool p_node_references_only);
diff --git a/editor/localization_editor.cpp b/editor/localization_editor.cpp
index 3c07e85758..921467ccbc 100644
--- a/editor/localization_editor.cpp
+++ b/editor/localization_editor.cpp
@@ -74,15 +74,20 @@ void LocalizationEditor::add_translation(const String &p_translation) {
void LocalizationEditor::_translation_add(const PackedStringArray &p_paths) {
PackedStringArray translations = GLOBAL_GET("internationalization/locale/translations");
- for (int i = 0; i < p_paths.size(); i++) {
- if (!translations.has(p_paths[i])) {
+ int count = 0;
+ for (const String &path : p_paths) {
+ if (!translations.has(path)) {
// Don't add duplicate translation paths.
- translations.push_back(p_paths[i]);
+ translations.push_back(path);
+ count += 1;
}
}
+ if (count == 0) {
+ return;
+ }
EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton();
- undo_redo->create_action(vformat(TTR("Add %d Translations"), p_paths.size()));
+ undo_redo->create_action(vformat(TTRN("Add %d Translation", "Add %d Translations", count), count));
undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translations", translations);
undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translations", GLOBAL_GET("internationalization/locale/translations"));
undo_redo->add_do_method(this, "update_translations");
@@ -136,15 +141,20 @@ void LocalizationEditor::_translation_res_add(const PackedStringArray &p_paths)
prev = remaps;
}
- for (int i = 0; i < p_paths.size(); i++) {
- if (!remaps.has(p_paths[i])) {
+ int count = 0;
+ for (const String &path : p_paths) {
+ if (!remaps.has(path)) {
// Don't overwrite with an empty remap array if an array already exists for the given path.
- remaps[p_paths[i]] = PackedStringArray();
+ remaps[path] = PackedStringArray();
+ count += 1;
}
}
+ if (count == 0) {
+ return;
+ }
EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton();
- undo_redo->create_action(vformat(TTR("Translation Resource Remap: Add %d Path(s)"), p_paths.size()));
+ undo_redo->create_action(vformat(TTRN("Translation Resource Remap: Add %d Path", "Translation Resource Remap: Add %d Paths", count), count));
undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", remaps);
undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", prev);
undo_redo->add_do_method(this, "update_translations");
@@ -176,7 +186,7 @@ void LocalizationEditor::_translation_res_option_add(const PackedStringArray &p_
remaps[key] = r;
EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton();
- undo_redo->create_action(vformat(TTR("Translation Resource Remap: Add %d Remap(s)"), p_paths.size()));
+ undo_redo->create_action(vformat(TTRN("Translation Resource Remap: Add %d Remap", "Translation Resource Remap: Add %d Remaps", p_paths.size()), p_paths.size()));
undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", remaps);
undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", GLOBAL_GET("internationalization/locale/translation_remaps"));
undo_redo->add_do_method(this, "update_translations");
@@ -326,14 +336,19 @@ void LocalizationEditor::_translation_res_option_delete(Object *p_item, int p_co
void LocalizationEditor::_pot_add(const PackedStringArray &p_paths) {
PackedStringArray pot_translations = GLOBAL_GET("internationalization/locale/translations_pot_files");
- for (int i = 0; i < p_paths.size(); i++) {
- if (!pot_translations.has(p_paths[i])) {
- pot_translations.push_back(p_paths[i]);
+ int count = 0;
+ for (const String &path : p_paths) {
+ if (!pot_translations.has(path)) {
+ pot_translations.push_back(path);
+ count += 1;
}
}
+ if (count == 0) {
+ return;
+ }
EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton();
- undo_redo->create_action(vformat(TTR("Add %d file(s) for POT generation"), p_paths.size()));
+ undo_redo->create_action(vformat(TTRN("Add %d file for POT generation", "Add %d files for POT generation", count), count));
undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translations_pot_files", pot_translations);
undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translations_pot_files", GLOBAL_GET("internationalization/locale/translations_pot_files"));
undo_redo->add_do_method(this, "update_translations");