From 977b190a2d2f7b5bc252c10836114661702e001e Mon Sep 17 00:00:00 2001 From: Felix Laurie von Massenbach Date: Sun, 25 Jan 2015 00:14:06 +0000 Subject: Add a revert menu item. --- tools/editor/editor_node.cpp | 14 ++++++++++++++ tools/editor/editor_node.h | 1 + 2 files changed, 15 insertions(+) diff --git a/tools/editor/editor_node.cpp b/tools/editor/editor_node.cpp index 6ff16e661c..c5604ffaf9 100644 --- a/tools/editor/editor_node.cpp +++ b/tools/editor/editor_node.cpp @@ -1967,6 +1967,18 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { log->add_message("REDO: "+action); } break; + + case EDIT_REVERT: { + + Node *scene = get_edited_scene(); + + if (!scene) + break; + + open_request(scene->get_filename()); + + } break; + #if 0 case NODE_EXTERNAL_INSTANCE: { @@ -3465,6 +3477,8 @@ EditorNode::EditorNode() { p->add_item("Undo",EDIT_UNDO,KEY_MASK_CMD+KEY_Z); p->add_item("Redo",EDIT_REDO,KEY_MASK_CMD+KEY_MASK_SHIFT+KEY_Z); p->add_separator(); + p->add_item("Revert Scene",EDIT_REVERT); + p->add_separator(); p->add_item("Run Script",FILE_RUN_SCRIPT,KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_R); p->add_separator(); p->add_item("Project Settings",RUN_SETTINGS); diff --git a/tools/editor/editor_node.h b/tools/editor/editor_node.h index 7560c2b149..54b9dc2b0b 100644 --- a/tools/editor/editor_node.h +++ b/tools/editor/editor_node.h @@ -127,6 +127,7 @@ class EditorNode : public Node { FILE_EXTERNAL_OPEN_SCENE, EDIT_UNDO, EDIT_REDO, + EDIT_REVERT, RESOURCE_NEW, RESOURCE_LOAD, RESOURCE_SAVE, -- cgit v1.2.3 From ce488e1f93b06a08815aefbec0fc57976bf42256 Mon Sep 17 00:00:00 2001 From: Felix Laurie von Massenbach Date: Mon, 26 Jan 2015 23:51:13 +0000 Subject: Move the Revert Scene menu item to be less intrusive. --- tools/editor/editor_node.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/editor/editor_node.cpp b/tools/editor/editor_node.cpp index c5604ffaf9..b4a9ca3b7a 100644 --- a/tools/editor/editor_node.cpp +++ b/tools/editor/editor_node.cpp @@ -3477,12 +3477,12 @@ EditorNode::EditorNode() { p->add_item("Undo",EDIT_UNDO,KEY_MASK_CMD+KEY_Z); p->add_item("Redo",EDIT_REDO,KEY_MASK_CMD+KEY_MASK_SHIFT+KEY_Z); p->add_separator(); - p->add_item("Revert Scene",EDIT_REVERT); - p->add_separator(); p->add_item("Run Script",FILE_RUN_SCRIPT,KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_R); p->add_separator(); p->add_item("Project Settings",RUN_SETTINGS); p->add_separator(); + p->add_item("Revert Scene",EDIT_REVERT); + p->add_separator(); p->add_item("Quit to Project List",RUN_PROJECT_MANAGER,KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_Q); p->add_item("Quit",FILE_QUIT,KEY_MASK_CMD+KEY_Q); -- cgit v1.2.3 From 5e1e78b257ad89dde7cd9becdbaa5fdadca08e19 Mon Sep 17 00:00:00 2001 From: Felix Laurie von Massenbach Date: Tue, 27 Jan 2015 00:00:07 +0000 Subject: Show a confirmation for the revert action. --- tools/editor/editor_node.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/editor/editor_node.cpp b/tools/editor/editor_node.cpp index b4a9ca3b7a..a48545d152 100644 --- a/tools/editor/editor_node.cpp +++ b/tools/editor/editor_node.cpp @@ -1974,8 +1974,15 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { if (!scene) break; + + if (unsaved_cache && !p_confirmed) { + confirmation->get_ok()->set_text("Revert"); + confirmation->set_text("This action cannot be undone. Revert anyway?"); + confirmation->popup_centered(Size2(300,70)); + break; + } - open_request(scene->get_filename()); + Error err = load_scene(scene->get_filename()); } break; -- cgit v1.2.3