diff --git a/editor/connections_dialog.cpp b/editor/connections_dialog.cpp index 8b2cc6f94a5..01d957cc9f6 100644 --- a/editor/connections_dialog.cpp +++ b/editor/connections_dialog.cpp @@ -924,7 +924,7 @@ ConnectDialog::~ConnectDialog() { Control *ConnectionsDockTree::make_custom_tooltip(const String &p_text) const { // If it's not a doc tooltip, fallback to the default one. - if (p_text.is_empty() || p_text.contains("::")) { + if (p_text.is_empty() || p_text.contains(" :: ")) { return nullptr; } diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp index 5f48d34f6c5..9af4836cf55 100644 --- a/editor/editor_file_system.cpp +++ b/editor/editor_file_system.cpp @@ -1385,7 +1385,7 @@ void EditorFileSystem::_process_file_system(const ScannedDirectory *p_scan_dir, void EditorFileSystem::_process_removed_files(const HashSet &p_processed_files) { for (const KeyValue &kv : file_cache) { if (!p_processed_files.has(kv.key)) { - if (ClassDB::is_parent_class(kv.value.type, SNAME("Script"))) { + if (ClassDB::is_parent_class(kv.value.type, SNAME("Script")) || ClassDB::is_parent_class(kv.value.type, SNAME("PackedScene"))) { // A script has been removed from disk since the last startup. The documentation needs to be updated. // There's no need to add the path in update_script_paths since that is exclusively for updating global class names, // which is handled in _first_scan_filesystem before the full scan to ensure plugins and autoloads can be created. @@ -2195,6 +2195,29 @@ void EditorFileSystem::_update_script_documentation() { continue; } + if (path.ends_with(".tscn")) { + Ref packed_scene = ResourceLoader::load(path); + if (packed_scene.is_valid()) { + Ref state = packed_scene->get_state(); + if (state.is_valid()) { + Vector> sub_resources = state->get_sub_resources(); + for (Ref sub_resource : sub_resources) { + Ref