From d8166998f85168b6635e53e2c46e234093ed55bf Mon Sep 17 00:00:00 2001 From: jacob1 Date: Mon, 7 Jan 2013 12:21:59 -0500 Subject: [PATCH] confirm on local save delete, ESC to exit local save browser, don't allow empty save names --- src/filebrowser/FileBrowserActivity.cpp | 29 +++++++++++++++++++------ src/filebrowser/FileBrowserActivity.h | 1 + 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/filebrowser/FileBrowserActivity.cpp b/src/filebrowser/FileBrowserActivity.cpp index 558e78d2b..b8e18bf45 100644 --- a/src/filebrowser/FileBrowserActivity.cpp +++ b/src/filebrowser/FileBrowserActivity.cpp @@ -13,6 +13,7 @@ #include "tasks/Task.h" #include "simulation/SaveRenderer.h" #include "dialogues/TextPrompt.h" +#include "dialogues/ConfirmPrompt.h" #include "dialogues/ErrorMessage.h" class Thumbnail; @@ -176,19 +177,28 @@ void FileBrowserActivity::SelectSave(SaveFile * file) void FileBrowserActivity::DeleteSave(SaveFile * file) { - remove(file->GetName().c_str()); - loadDirectory(directory, ""); + std::string deleteMessage = "Are you sure you want to delete " + file->GetDisplayName() + ".cps?"; + if (ConfirmPrompt::Blocking("Delete Save", deleteMessage)) + { + remove(file->GetName().c_str()); + loadDirectory(directory, ""); + } } void FileBrowserActivity::RenameSave(SaveFile * file) { std::string newName = TextPrompt::Blocking("Rename", "Change save name", file->GetDisplayName(), "", 0); - newName = directory + PATH_SEP + newName + ".cps"; - int ret = rename(file->GetName().c_str(), newName.c_str()); - if (ret) - ErrorMessage::Blocking("Error", "Could not rename file"); + if (newName.length()) + { + newName = directory + PATH_SEP + newName + ".cps"; + int ret = rename(file->GetName().c_str(), newName.c_str()); + if (ret) + ErrorMessage::Blocking("Error", "Could not rename file"); + else + loadDirectory(directory, ""); + } else - loadDirectory(directory, ""); + ErrorMessage::Blocking("Error", "No save name given"); } void FileBrowserActivity::loadDirectory(std::string directory, std::string search) @@ -246,6 +256,11 @@ void FileBrowserActivity::OnMouseDown(int x, int y, unsigned button) Exit(); } +void FileBrowserActivity::OnTryExit(ExitMethod method) +{ + Exit(); +} + void FileBrowserActivity::NotifyError(Task * task) { diff --git a/src/filebrowser/FileBrowserActivity.h b/src/filebrowser/FileBrowserActivity.h index e4f8e6f8e..fa8f32a0a 100644 --- a/src/filebrowser/FileBrowserActivity.h +++ b/src/filebrowser/FileBrowserActivity.h @@ -49,6 +49,7 @@ public: FileBrowserActivity(std::string directory, FileSelectedCallback * callback); virtual void OnDraw(); virtual void OnTick(float dt); + virtual void OnTryExit(ExitMethod method); virtual void OnMouseDown(int x, int y, unsigned button); void loadDirectory(std::string directory, std::string search); void SelectSave(SaveFile * file);