summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/classes/String.xml2
-rw-r--r--editor/project_settings_editor.cpp19
-rw-r--r--modules/visual_script/visual_script_editor.cpp6
3 files changed, 18 insertions, 9 deletions
diff --git a/doc/classes/String.xml b/doc/classes/String.xml
index cf152e716e..e0a4a24299 100644
--- a/doc/classes/String.xml
+++ b/doc/classes/String.xml
@@ -459,7 +459,7 @@
<argument index="1" name="what" type="String">
</argument>
<description>
- Inserts a substring at a given position.
+ Returns a copy of the string with the substring [code]what[/code] inserted at the given position.
</description>
</method>
<method name="is_abs_path">
diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp
index ca5858b768..9ac775e456 100644
--- a/editor/project_settings_editor.cpp
+++ b/editor/project_settings_editor.cpp
@@ -1530,28 +1530,33 @@ void ProjectSettingsEditor::_update_translations() {
Array l_filter = l_filter_all[1];
int s = names.size();
- if (!translation_locales_list_created) {
+ bool is_short_list_when_show_all_selected = filter_mode == SHOW_ALL_LOCALES && translation_filter_treeitems.size() < s;
+ bool is_full_list_when_show_only_selected = filter_mode == SHOW_ONLY_SELECTED_LOCALES && translation_filter_treeitems.size() == s;
+ bool should_recreate_locales_list = is_short_list_when_show_all_selected || is_full_list_when_show_only_selected;
+
+ if (!translation_locales_list_created || should_recreate_locales_list) {
translation_locales_list_created = true;
translation_filter->clear();
root = translation_filter->create_item(NULL);
translation_filter->set_hide_root(true);
- translation_filter_treeitems.resize(s);
-
+ translation_filter_treeitems.clear();
for (int i = 0; i < s; i++) {
String n = names[i];
String l = langs[i];
+ bool is_checked = l_filter.has(l);
+ if (filter_mode == SHOW_ONLY_SELECTED_LOCALES && !is_checked) continue;
+
TreeItem *t = translation_filter->create_item(root);
t->set_cell_mode(0, TreeItem::CELL_MODE_CHECK);
t->set_text(0, n);
t->set_editable(0, true);
t->set_tooltip(0, l);
- t->set_checked(0, l_filter.has(l));
- translation_filter_treeitems.write[i] = t;
+ t->set_checked(0, is_checked);
+ translation_filter_treeitems.push_back(t);
}
} else {
- for (int i = 0; i < s; i++) {
-
+ for (int i = 0; i < translation_filter_treeitems.size(); i++) {
TreeItem *t = translation_filter_treeitems[i];
t->set_checked(0, l_filter.has(t->get_tooltip(0)));
}
diff --git a/modules/visual_script/visual_script_editor.cpp b/modules/visual_script/visual_script_editor.cpp
index 0db771f7c0..6aae2fd15b 100644
--- a/modules/visual_script/visual_script_editor.cpp
+++ b/modules/visual_script/visual_script_editor.cpp
@@ -3515,6 +3515,7 @@ void VisualScriptEditor::_selected_connect_node(const String &p_text, const Stri
}
Ref<VisualScriptNode> vnode;
+ Ref<VisualScriptPropertySet> script_prop_set;
if (p_category == String("method")) {
@@ -3525,8 +3526,8 @@ void VisualScriptEditor::_selected_connect_node(const String &p_text, const Stri
Ref<VisualScriptPropertySet> n;
n.instance();
- n->set_property(p_text);
vnode = n;
+ script_prop_set = n;
} else if (p_category == String("get")) {
Ref<VisualScriptPropertyGet> n;
@@ -3578,6 +3579,9 @@ void VisualScriptEditor::_selected_connect_node(const String &p_text, const Stri
undo_redo->add_undo_method(this, "_update_graph", new_id);
undo_redo->commit_action();
+ if (script_prop_set.is_valid())
+ script_prop_set->set_property(p_text);
+
port_action_new_node = new_id;
Ref<VisualScriptNode> vsn = script->get_node(func, port_action_new_node);