[Editor]: Allow Select Current
to Save Scenes
[Editor]: Change `Select Current` to Save scenes before attempting to Run them.
This commit is contained in:
parent
c18d0f2035
commit
0672711b29
2 changed files with 27 additions and 5 deletions
|
@ -1924,6 +1924,21 @@ void EditorNode::_dialog_action(String p_file) {
|
|||
}
|
||||
} break;
|
||||
|
||||
case FILE_SAVE_AND_RUN_MAIN_SCENE: {
|
||||
ProjectSettings::get_singleton()->set("application/run/main_scene", p_file);
|
||||
ProjectSettings::get_singleton()->save();
|
||||
|
||||
if (file->get_file_mode() == EditorFileDialog::FILE_MODE_SAVE_FILE) {
|
||||
_save_default_environment();
|
||||
_save_scene_with_preview(p_file);
|
||||
if ((bool)pick_main_scene->get_meta("from_native", false)) {
|
||||
run_native->resume_run_native();
|
||||
} else {
|
||||
_run(false, p_file);
|
||||
}
|
||||
}
|
||||
} break;
|
||||
|
||||
case FILE_EXPORT_MESH_LIBRARY: {
|
||||
Ref<MeshLibrary> ml;
|
||||
if (file_export_lib_merge->is_pressed() && FileAccess::exists(p_file)) {
|
||||
|
@ -2373,10 +2388,8 @@ void EditorNode::_run(bool p_current, const String &p_custom) {
|
|||
}
|
||||
|
||||
if (scene->get_scene_file_path().is_empty()) {
|
||||
current_menu_option = -1;
|
||||
_menu_option(FILE_SAVE_AS_SCENE);
|
||||
// Set the option to save and run so when the dialog is accepted, the scene runs.
|
||||
current_menu_option = FILE_SAVE_AND_RUN;
|
||||
_menu_option_confirm(FILE_SAVE_AS_SCENE, true);
|
||||
file->set_title(TTR("Save scene before running..."));
|
||||
return;
|
||||
}
|
||||
|
@ -2391,6 +2404,7 @@ void EditorNode::_run(bool p_current, const String &p_custom) {
|
|||
if (!ensure_main_scene(false)) {
|
||||
return;
|
||||
}
|
||||
run_filename = GLOBAL_DEF_BASIC("application/run/main_scene", "");
|
||||
}
|
||||
|
||||
if (bool(EDITOR_GET("run/auto_save/save_before_running"))) {
|
||||
|
@ -4074,8 +4088,15 @@ void EditorNode::_pick_main_scene_custom_action(const String &p_custom_action_na
|
|||
}
|
||||
|
||||
pick_main_scene->hide();
|
||||
current_menu_option = SETTINGS_PICK_MAIN_SCENE;
|
||||
_dialog_action(scene->get_scene_file_path());
|
||||
|
||||
if (!FileAccess::exists(scene->get_scene_file_path())) {
|
||||
current_menu_option = FILE_SAVE_AND_RUN_MAIN_SCENE;
|
||||
_menu_option_confirm(FILE_SAVE_AS_SCENE, true);
|
||||
file->set_title(TTR("Save scene before running..."));
|
||||
} else {
|
||||
current_menu_option = SETTINGS_PICK_MAIN_SCENE;
|
||||
_dialog_action(scene->get_scene_file_path());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -138,6 +138,7 @@ private:
|
|||
FILE_SAVE_AS_SCENE,
|
||||
FILE_SAVE_ALL_SCENES,
|
||||
FILE_SAVE_AND_RUN,
|
||||
FILE_SAVE_AND_RUN_MAIN_SCENE,
|
||||
FILE_SHOW_IN_FILESYSTEM,
|
||||
FILE_EXPORT_PROJECT,
|
||||
FILE_EXPORT_MESH_LIBRARY,
|
||||
|
|
Loading…
Reference in a new issue