Browse Source

Fixed editor attempting to save a blank scene with save all scenes

(cherry picked from commit e10d0d76bc75a9a3945fa968adb647f36b411825)
Matthew Newall 3 years ago
parent
commit
3149eabdc0
1 changed files with 12 additions and 6 deletions
  1. 12 6
      editor/editor_node.cpp

+ 12 - 6
editor/editor_node.cpp

@@ -1611,19 +1611,25 @@ void EditorNode::restart_editor() {
 }
 }
 
 
 void EditorNode::_save_all_scenes() {
 void EditorNode::_save_all_scenes() {
+	bool all_saved = true;
 	for (int i = 0; i < editor_data.get_edited_scene_count(); i++) {
 	for (int i = 0; i < editor_data.get_edited_scene_count(); i++) {
 		Node *scene = editor_data.get_edited_scene_root(i);
 		Node *scene = editor_data.get_edited_scene_root(i);
-		if (scene && scene->get_filename() != "" && DirAccess::exists(scene->get_filename().get_base_dir())) {
-			if (i != editor_data.get_edited_scene()) {
-				_save_scene(scene->get_filename(), i);
+		if (scene) {
+			if (scene->get_filename() != "" && DirAccess::exists(scene->get_filename().get_base_dir())) {
+				if (i != editor_data.get_edited_scene()) {
+					_save_scene(scene->get_filename(), i);
+				} else {
+					_save_scene_with_preview(scene->get_filename());
+				}
 			} else {
 			} else {
-				_save_scene_with_preview(scene->get_filename());
+				all_saved = false;
 			}
 			}
-		} else {
-			show_warning(TTR("Could not save one or more scenes!"), TTR("Save All Scenes"));
 		}
 		}
 	}
 	}
 
 
+	if (!all_saved) {
+		show_warning(TTR("Could not save one or more scenes!"), TTR("Save All Scenes"));
+	}
 	_save_default_environment();
 	_save_default_environment();
 }
 }