summaryrefslogtreecommitdiff
path: root/src/localbrowser
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2012-10-02 02:00:57 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-10-05 14:20:33 (GMT)
commitd45dd605e97fa6c8f6e90495fbb1ae203ac314df (patch)
treea53149f388f073d5a41fc50ad3b29355535cce6e /src/localbrowser
parentcb8efcd0f98185104805c8caa88decd39fbd9070 (diff)
downloadpowder-d45dd605e97fa6c8f6e90495fbb1ae203ac314df.zip
powder-d45dd605e97fa6c8f6e90495fbb1ae203ac314df.tar.gz
Stamp fix button to bring back deleted stamps
Diffstat (limited to 'src/localbrowser')
-rw-r--r--src/localbrowser/LocalBrowserController.cpp6
-rw-r--r--src/localbrowser/LocalBrowserController.h1
-rw-r--r--src/localbrowser/LocalBrowserModel.cpp5
-rw-r--r--src/localbrowser/LocalBrowserModel.h1
-rw-r--r--src/localbrowser/LocalBrowserView.cpp16
-rw-r--r--src/localbrowser/LocalBrowserView.h1
6 files changed, 30 insertions, 0 deletions
diff --git a/src/localbrowser/LocalBrowserController.cpp b/src/localbrowser/LocalBrowserController.cpp
index 9565759..6d1b42d 100644
--- a/src/localbrowser/LocalBrowserController.cpp
+++ b/src/localbrowser/LocalBrowserController.cpp
@@ -89,6 +89,12 @@ void LocalBrowserController::removeSelectedC()
new TaskWindow("Removing saves", new RemoveSavesTask(this, selected));
}
+void LocalBrowserController::UnDeleteStamps()
+{
+ browserModel->UnDeleteStamps();
+ browserModel->UpdateSavesList(browserModel->GetPageNum());
+}
+
void LocalBrowserController::RefreshSavesList()
{
ClearSelection();
diff --git a/src/localbrowser/LocalBrowserController.h b/src/localbrowser/LocalBrowserController.h
index 1f81ab6..1ba3bf6 100644
--- a/src/localbrowser/LocalBrowserController.h
+++ b/src/localbrowser/LocalBrowserController.h
@@ -27,6 +27,7 @@ public:
void removeSelectedC();
void ClearSelection();
void Selected(std::string stampID, bool selected);
+ void UnDeleteStamps();
void RefreshSavesList();
void OpenSave(SaveFile * stamp);
void SetStamp();
diff --git a/src/localbrowser/LocalBrowserModel.cpp b/src/localbrowser/LocalBrowserModel.cpp
index a38ca1f..4a7e780 100644
--- a/src/localbrowser/LocalBrowserModel.cpp
+++ b/src/localbrowser/LocalBrowserModel.cpp
@@ -87,6 +87,11 @@ void LocalBrowserModel::UpdateSavesList(int pageNumber)
notifySavesListChanged();
}
+void LocalBrowserModel::UnDeleteStamps()
+{
+ Client::Ref().UnDeleteStamps();
+}
+
int LocalBrowserModel::GetPageCount()
{
return std::max(1, (int)(std::ceil(float(Client::Ref().GetStampsCount())/20.0f)));
diff --git a/src/localbrowser/LocalBrowserModel.h b/src/localbrowser/LocalBrowserModel.h
index e6b6905..6bd19eb 100644
--- a/src/localbrowser/LocalBrowserModel.h
+++ b/src/localbrowser/LocalBrowserModel.h
@@ -32,6 +32,7 @@ public:
void AddObserver(LocalBrowserView * observer);
std::vector<SaveFile *> GetSavesList();
void UpdateSavesList(int pageNumber);
+ void UnDeleteStamps();
SaveFile * GetSave();
void SetSave(SaveFile * newStamp);
std::vector<std::string> GetSelected() { return selected; }
diff --git a/src/localbrowser/LocalBrowserView.cpp b/src/localbrowser/LocalBrowserView.cpp
index cbb98bf..daf623c 100644
--- a/src/localbrowser/LocalBrowserView.cpp
+++ b/src/localbrowser/LocalBrowserView.cpp
@@ -16,6 +16,7 @@
#include "interface/Keys.h"
#include "dialogues/ErrorMessage.h"
+#include "dialogues/ConfirmPrompt.h"
#include "LocalBrowserController.h"
#include "LocalBrowserModel.h"
#include "LocalBrowserModelException.h"
@@ -25,10 +26,12 @@ LocalBrowserView::LocalBrowserView():
{
nextButton = new ui::Button(ui::Point(XRES+BARSIZE-52, YRES+MENUSIZE-18), ui::Point(50, 16), "Next \x95");
previousButton = new ui::Button(ui::Point(1, YRES+MENUSIZE-18), ui::Point(50, 16), "\x96 Prev");
+ undeleteButton = new ui::Button(ui::Point(XRES+BARSIZE-122, YRES+MENUSIZE-18), ui::Point(60, 16), "Stamp Fix");
infoLabel = new ui::Label(ui::Point(51, YRES+MENUSIZE-18), ui::Point(XRES+BARSIZE-102, 16), "Loading...");
AddComponent(infoLabel);
AddComponent(nextButton);
AddComponent(previousButton);
+ AddComponent(undeleteButton);
class NextPageAction : public ui::ButtonAction
{
@@ -58,6 +61,19 @@ LocalBrowserView::LocalBrowserView():
previousButton->Appearance.HorizontalAlign = ui::Appearance::AlignLeft;
previousButton->Appearance.VerticalAlign = ui::Appearance::AlignMiddle;
+ class UndeleteAction : public ui::ButtonAction
+ {
+ LocalBrowserView * v;
+ public:
+ UndeleteAction(LocalBrowserView * _v) { v = _v; }
+ void ActionCallback(ui::Button * sender)
+ {
+ if(ConfirmPrompt::Blocking("Bring back deleted stamps", "Versions 83.1-83.8 had a bug where stamps past page 3 were deleted from the list. Click continue to bring these back and read every stamp in the stamps/ folder.\n\nWARNING:\nThis will also bring back all stamps deleted before version 74.2 (March 2012)", "Continue"))
+ v->c->UnDeleteStamps();
+ }
+ };
+ undeleteButton->SetActionCallback(new UndeleteAction(this));
+
class RemoveSelectedAction : public ui::ButtonAction
{
LocalBrowserView * v;
diff --git a/src/localbrowser/LocalBrowserView.h b/src/localbrowser/LocalBrowserView.h
index 71c20ee..7a8c813 100644
--- a/src/localbrowser/LocalBrowserView.h
+++ b/src/localbrowser/LocalBrowserView.h
@@ -23,6 +23,7 @@ class LocalBrowserModel;
class LocalBrowserView: public ui::Window {
LocalBrowserController * c;
std::vector<ui::SaveButton*> stampButtons;
+ ui::Button * undeleteButton;
ui::Button * previousButton;
ui::Button * nextButton;
ui::Label * infoLabel;