Browse Source

Set current directory when using Save Branch As Scene

Aaron Franke 3 months ago
parent
commit
508d271522
2 changed files with 7 additions and 0 deletions
  1. 6 0
      editor/scene_tree_dock.cpp
  2. 1 0
      editor/scene_tree_dock.h

+ 6 - 0
editor/scene_tree_dock.cpp

@@ -1182,6 +1182,11 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
 			}
 
 			new_scene_from_dialog->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE);
+			if (determine_path_automatically) {
+				new_scene_from_dialog->set_current_dir(editor_data->get_edited_scene_root()->get_scene_file_path().get_base_dir());
+			} else {
+				determine_path_automatically = true;
+			}
 
 			List<String> extensions;
 			Ref<PackedScene> sd = memnew(PackedScene);
@@ -4069,6 +4074,7 @@ void SceneTreeDock::set_filter(const String &p_filter) {
 
 void SceneTreeDock::save_branch_to_file(const String &p_directory) {
 	new_scene_from_dialog->set_current_dir(p_directory);
+	determine_path_automatically = false;
 	_tool_selected(TOOL_NEW_SCENE_FROM);
 }
 

+ 1 - 0
editor/scene_tree_dock.h

@@ -290,6 +290,7 @@ class SceneTreeDock : public VBoxContainer {
 
 	bool profile_allow_editing = true;
 	bool profile_allow_script_editing = true;
+	bool determine_path_automatically = true;
 
 	static void _update_configuration_warning();