diff options
| author | jacob1 <jfu614@gmail.com> | 2013-01-07 16:56:48 (GMT) |
|---|---|---|
| committer | jacob1 <jfu614@gmail.com> | 2013-01-07 16:56:48 (GMT) |
| commit | 323dae959ad168b634599b27802fb03598305c81 (patch) | |
| tree | cea0fb4d328d51ce0f0e5a6c64775231e768dbc0 /src/filebrowser/FileBrowserActivity.cpp | |
| parent | 659c3677aa159912518f8cd541adfae6dce6dcdc (diff) | |
| download | powder-323dae959ad168b634599b27802fb03598305c81.zip powder-323dae959ad168b634599b27802fb03598305c81.tar.gz | |
local save deletion and renaming with the right click context menu
Diffstat (limited to 'src/filebrowser/FileBrowserActivity.cpp')
| -rw-r--r-- | src/filebrowser/FileBrowserActivity.cpp | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/src/filebrowser/FileBrowserActivity.cpp b/src/filebrowser/FileBrowserActivity.cpp index 52656df..558e78d 100644 --- a/src/filebrowser/FileBrowserActivity.cpp +++ b/src/filebrowser/FileBrowserActivity.cpp @@ -12,6 +12,8 @@ #include "Style.h" #include "tasks/Task.h" #include "simulation/SaveRenderer.h" +#include "dialogues/TextPrompt.h" +#include "dialogues/ErrorMessage.h" class Thumbnail; @@ -25,6 +27,14 @@ public: { a->SelectSave(sender->GetSaveFile()); } + virtual void AltActionCallback(ui::SaveButton * sender) + { + a->RenameSave(sender->GetSaveFile()); + } + virtual void AltActionCallback2(ui::SaveButton * sender) + { + a->DeleteSave(sender->GetSaveFile()); + } }; //Currently, reading is done on another thread, we can't render outside the main thread due to some bullshit with OpenGL @@ -164,15 +174,30 @@ void FileBrowserActivity::SelectSave(SaveFile * file) Exit(); } +void FileBrowserActivity::DeleteSave(SaveFile * file) +{ + 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"); + else + loadDirectory(directory, ""); +} + void FileBrowserActivity::loadDirectory(std::string directory, std::string search) { for(int i = 0; i < components.size(); i++) { RemoveComponent(components[i]); itemList->RemoveChild(components[i]); - delete components[i]; } - components.clear(); for(std::vector<ui::Component*>::iterator iter = componentsQueue.begin(), end = componentsQueue.end(); iter != end; ++iter) { @@ -208,6 +233,11 @@ void FileBrowserActivity::NotifyDone(Task * task) progressBar->Visible = false; infoText->Visible = true; } + for(int i = 0; i < components.size(); i++) + { + delete components[i]; + } + components.clear(); } void FileBrowserActivity::OnMouseDown(int x, int y, unsigned button) @@ -253,6 +283,7 @@ void FileBrowserActivity::OnTick(float dt) ), ui::Point(buttonWidth, buttonHeight), saveFile); + saveButton->AddContextMenu(1); saveButton->Tick(dt); saveButton->SetActionCallback(new SaveSelectedAction(this)); progressBar->SetStatus("Rendering thumbnails"); |
