summaryrefslogtreecommitdiff
path: root/src/filebrowser/FileBrowserActivity.cpp
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2013-01-07 16:56:48 (GMT)
committer jacob1 <jfu614@gmail.com>2013-01-07 16:56:48 (GMT)
commit323dae959ad168b634599b27802fb03598305c81 (patch)
treecea0fb4d328d51ce0f0e5a6c64775231e768dbc0 /src/filebrowser/FileBrowserActivity.cpp
parent659c3677aa159912518f8cd541adfae6dce6dcdc (diff)
downloadpowder-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.cpp35
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");