Prompt save dialog if running a unsaved scene. Solution for #966
This commit is contained in:
parent
d8c14af546
commit
cf616e5845
@ -975,9 +975,19 @@ void EditorNode::_dialog_action(String p_file) {
|
|||||||
if (file->get_mode()==FileDialog::MODE_SAVE_FILE) {
|
if (file->get_mode()==FileDialog::MODE_SAVE_FILE) {
|
||||||
|
|
||||||
_save_scene(p_file);
|
_save_scene(p_file);
|
||||||
|
_run(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
|
case FILE_SAVE_AND_RUN: {
|
||||||
|
if (file->get_mode()==FileDialog::MODE_SAVE_FILE) {
|
||||||
|
|
||||||
|
_save_scene(p_file);
|
||||||
|
_run(false);
|
||||||
|
}
|
||||||
|
} break;
|
||||||
|
|
||||||
case FILE_EXPORT_MESH_LIBRARY: {
|
case FILE_EXPORT_MESH_LIBRARY: {
|
||||||
|
|
||||||
Ref<MeshLibrary> ml;
|
Ref<MeshLibrary> ml;
|
||||||
@ -1391,13 +1401,10 @@ void EditorNode::_run(bool p_current,const String& p_custom) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (scene->get_filename()=="") {
|
if (scene->get_filename()=="") {
|
||||||
|
|
||||||
|
|
||||||
current_option=-1;
|
current_option=-1;
|
||||||
//accept->get_cancel()->hide();
|
//accept->get_cancel()->hide();
|
||||||
accept->get_ok()->set_text("I see..");
|
/**/
|
||||||
accept->set_text("Scene has never been saved. Save before running!");
|
_menu_option_confirm(FILE_SAVE_BEFORE_RUN, false);
|
||||||
accept->popup_centered(Size2(300,70));;
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1664,6 +1671,18 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
|
|||||||
|
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
|
case FILE_SAVE_BEFORE_RUN: {
|
||||||
|
if (!p_confirmed) {
|
||||||
|
accept->get_ok()->set_text("Yes");
|
||||||
|
accept->set_text("This scene has never been saved. Save before running?");
|
||||||
|
accept->popup_centered(Size2(300, 70));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
_menu_option(FILE_SAVE_AS_SCENE);
|
||||||
|
_menu_option_confirm(FILE_SAVE_AND_RUN, true);
|
||||||
|
} break;
|
||||||
|
|
||||||
case FILE_DUMP_STRINGS: {
|
case FILE_DUMP_STRINGS: {
|
||||||
|
|
||||||
Node *scene = edited_scene;
|
Node *scene = edited_scene;
|
||||||
|
@ -108,6 +108,8 @@ class EditorNode : public Node {
|
|||||||
FILE_OPEN_SCENE,
|
FILE_OPEN_SCENE,
|
||||||
FILE_SAVE_SCENE,
|
FILE_SAVE_SCENE,
|
||||||
FILE_SAVE_AS_SCENE,
|
FILE_SAVE_AS_SCENE,
|
||||||
|
FILE_SAVE_BEFORE_RUN,
|
||||||
|
FILE_SAVE_AND_RUN,
|
||||||
FILE_IMPORT_SUBSCENE,
|
FILE_IMPORT_SUBSCENE,
|
||||||
FILE_EXPORT_PROJECT,
|
FILE_EXPORT_PROJECT,
|
||||||
FILE_EXPORT_MESH_LIBRARY,
|
FILE_EXPORT_MESH_LIBRARY,
|
||||||
|
Loading…
Reference in New Issue
Block a user