summaryrefslogtreecommitdiffstats
path: root/editor/gui/scene_tree_editor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/gui/scene_tree_editor.cpp')
-rw-r--r--editor/gui/scene_tree_editor.cpp26
1 files changed, 20 insertions, 6 deletions
diff --git a/editor/gui/scene_tree_editor.cpp b/editor/gui/scene_tree_editor.cpp
index d1756df66c..d8c6ff54cc 100644
--- a/editor/gui/scene_tree_editor.cpp
+++ b/editor/gui/scene_tree_editor.cpp
@@ -374,7 +374,14 @@ void SceneTreeEditor::_add_nodes(Node *p_node, TreeItem *p_parent) {
tooltip += String("\n" + TTR("Type:") + " " + (custom_type != StringName() ? String(custom_type) : p_node->get_class()));
if (!p_node->get_editor_description().is_empty()) {
- tooltip += "\n\n" + p_node->get_editor_description();
+ const PackedInt32Array boundaries = TS->string_get_word_breaks(p_node->get_editor_description(), "", 80);
+ tooltip += "\n";
+
+ for (int i = 0; i < boundaries.size(); i += 2) {
+ const int start = boundaries[i];
+ const int end = boundaries[i + 1];
+ tooltip += "\n" + p_node->get_editor_description().substr(start, end - start + 1).rstrip("\n");
+ }
}
item->set_tooltip_text(0, tooltip);
@@ -1019,11 +1026,18 @@ void SceneTreeEditor::_renamed() {
}
}
- if (n->is_unique_name_in_owner() && get_tree()->get_edited_scene_root()->get_node_or_null("%" + new_name) != nullptr) {
- error->set_text(TTR("Another node already uses this unique name in the scene."));
- error->popup_centered();
- which->set_text(0, n->get_name());
- return;
+ if (n->is_unique_name_in_owner()) {
+ Node *existing = get_tree()->get_edited_scene_root()->get_node_or_null("%" + new_name);
+ if (existing == n) {
+ which->set_text(0, n->get_name());
+ return;
+ }
+ if (existing != nullptr) {
+ error->set_text(TTR("Another node already uses this unique name in the scene."));
+ error->popup_centered();
+ which->set_text(0, n->get_name());
+ return;
+ }
}
_rename_node(n, new_name);