From 7b850260bfc114a531b650698c48944dcde85940 Mon Sep 17 00:00:00 2001 From: Artemy Fedotov Date: Wed, 3 Sep 2025 19:20:08 +0400 Subject: [PATCH] Fix invalid suggested file name when saving resource from a scene that hasn't been saved yet --- editor/docks/scene_tree_dock.cpp | 5 ++++- editor/editor_node.cpp | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/editor/docks/scene_tree_dock.cpp b/editor/docks/scene_tree_dock.cpp index 96de0a90063..a2c704082b4 100644 --- a/editor/docks/scene_tree_dock.cpp +++ b/editor/docks/scene_tree_dock.cpp @@ -4204,7 +4204,7 @@ void SceneTreeDock::attach_shader_to_selected(int p_preferred_mode) { } String path = selected_shader_material->get_path(); - if (path.is_empty()) { + if (path.get_base_dir().is_empty()) { String root_path; if (editor_data->get_edited_scene_root()) { root_path = editor_data->get_edited_scene_root()->get_scene_file_path(); @@ -4215,6 +4215,9 @@ void SceneTreeDock::attach_shader_to_selected(int p_preferred_mode) { } else { shader_name = selected_shader_material->get_name(); } + if (shader_name.is_empty()) { + shader_name = "new_shader"; + } if (root_path.is_empty()) { path = String("res://").path_join(shader_name); } else { diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index b90292efc15..ed9081988b2 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -1690,7 +1690,7 @@ void EditorNode::save_resource_as(const Ref &p_resource, const String file->set_current_file(String()); } } - } else if (!p_resource->get_path().is_empty()) { + } else if (!p_resource->get_path().get_base_dir().is_empty()) { file->set_current_path(p_resource->get_path()); if (!extensions.is_empty()) { const String ext = p_resource->get_path().get_extension().to_lower();