From fec8974dd348c33eaab2662189aa99d8988e42ad Mon Sep 17 00:00:00 2001 From: Regalis Date: Mon, 8 May 2017 18:40:58 +0300 Subject: [PATCH] "Are you sure" prompt when trying to delete subs in the editor --- Subsurface/Source/Screens/EditMapScreen.cs | 39 ++++++++++++++-------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/Subsurface/Source/Screens/EditMapScreen.cs b/Subsurface/Source/Screens/EditMapScreen.cs index 47ef98279..89f81568c 100644 --- a/Subsurface/Source/Screens/EditMapScreen.cs +++ b/Subsurface/Source/Screens/EditMapScreen.cs @@ -550,23 +550,13 @@ namespace Barotrauma deleteButton.UserData = "delete"; deleteButton.OnClicked = (btn, userdata) => { - if (subList.Selected!=null) + if (subList.Selected != null) { - Submarine sub = subList.Selected.UserData as Submarine; - try - { - File.Delete(sub.FilePath); - } - catch (Exception e) - { - DebugConsole.ThrowError("Couldn't delete file \""+sub.FilePath+"\"!", e); - } + TryDeleteSub(subList.Selected.UserData as Submarine); } deleteButton.Enabled = false; - - CreateLoadScreen(); - + return true; }; @@ -603,6 +593,29 @@ namespace Barotrauma return true; } + private void TryDeleteSub(Submarine sub) + { + if (sub == null) return; + + var msgBox = new GUIMessageBox("Delete file?", "Are you sure you want to delete \"" + sub.Name + "\"", new string[] { "OK", "Cancel" }); + msgBox.Buttons[0].OnClicked += (btn, userData) => + { + try + { + sub.Remove(); + File.Delete(sub.FilePath); + CreateLoadScreen(); + } + catch (Exception e) + { + DebugConsole.ThrowError("Couldn't delete file \"" + sub.FilePath + "\"!", e); + } + return true; + }; + msgBox.Buttons[0].OnClicked += msgBox.Close; + msgBox.Buttons[1].OnClicked += msgBox.Close; + } + private bool SelectTab(GUIButton button, object obj) { if (characterMode) ToggleCharacterMode();