diff options
| author | jacob1 <jfu614@gmail.com> | 2012-10-02 02:00:57 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-10-05 14:20:33 (GMT) |
| commit | d45dd605e97fa6c8f6e90495fbb1ae203ac314df (patch) | |
| tree | a53149f388f073d5a41fc50ad3b29355535cce6e /src/localbrowser | |
| parent | cb8efcd0f98185104805c8caa88decd39fbd9070 (diff) | |
| download | powder-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.cpp | 6 | ||||
| -rw-r--r-- | src/localbrowser/LocalBrowserController.h | 1 | ||||
| -rw-r--r-- | src/localbrowser/LocalBrowserModel.cpp | 5 | ||||
| -rw-r--r-- | src/localbrowser/LocalBrowserModel.h | 1 | ||||
| -rw-r--r-- | src/localbrowser/LocalBrowserView.cpp | 16 | ||||
| -rw-r--r-- | src/localbrowser/LocalBrowserView.h | 1 |
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; |
