diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-01-19 20:10:05 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-01-19 20:10:05 (GMT) |
| commit | c5e8b345219cd7d8ca4b0aa638f59a1fed2cd83b (patch) | |
| tree | 0d324f7b8d5bf6978f4543af415248b474676b97 /src/search | |
| parent | 6d3b447f8e32fdaccdb3727af4d72d341e191e94 (diff) | |
| download | powder-c5e8b345219cd7d8ca4b0aa638f59a1fed2cd83b.zip powder-c5e8b345219cd7d8ca4b0aa638f59a1fed2cd83b.tar.gz | |
Add "cajun" for JSON reading and writing, Save searching in client and some more stuff for searcg
Diffstat (limited to 'src/search')
| -rw-r--r-- | src/search/SearchModel.cpp | 12 | ||||
| -rw-r--r-- | src/search/SearchModel.h | 3 | ||||
| -rw-r--r-- | src/search/SearchView.cpp | 80 | ||||
| -rw-r--r-- | src/search/SearchView.h | 2 |
4 files changed, 67 insertions, 30 deletions
diff --git a/src/search/SearchModel.cpp b/src/search/SearchModel.cpp index 494d490..16a99d4 100644 --- a/src/search/SearchModel.cpp +++ b/src/search/SearchModel.cpp @@ -1,18 +1,26 @@ #include "SearchModel.h" #include "Save.h" +#include "client/Client.h" + SearchModel::SearchModel() { } void SearchModel::UpdateSaveList() { + lastError = ""; saveList.clear(); notifySaveListChanged(); - for(int i = 0; i < 16; i++) + saveList = Client::Ref().SearchSaves(0, 12, "", ""); + if(!saveList.size()) { - saveList.push_back(Save(2198, 2333, 315, "dima-gord", "Destroyable city 5 (wth metro)")); + lastError = Client::Ref().GetLastError(); } + /*for(int i = 0; i < 16; i++) + { + saveList.push_back(Save(2198, 2333, 315, "dima-gord", "Destroyable city 5 (wth metro)")); + }*/ notifySaveListChanged(); } diff --git a/src/search/SearchModel.h b/src/search/SearchModel.h index 85d4177..e65c15e 100644 --- a/src/search/SearchModel.h +++ b/src/search/SearchModel.h @@ -2,6 +2,7 @@ #define SEARCHMODEL_H #include <vector> +#include <string> #include "Save.h" #include "SearchView.h" @@ -11,6 +12,7 @@ class SearchView; class SearchModel { private: + string lastError; vector<SearchView*> observers; vector<Save> saveList; void notifySaveListChanged(); @@ -19,6 +21,7 @@ public: void AddObserver(SearchView * observer); void UpdateSaveList(); vector<Save> GetSaveList(); + string GetLastError() { return lastError; } }; #endif // SEARCHMODEL_H diff --git a/src/search/SearchView.cpp b/src/search/SearchView.cpp index 29d6eef..63a579e 100644 --- a/src/search/SearchView.cpp +++ b/src/search/SearchView.cpp @@ -1,10 +1,12 @@ #include "SearchView.h" #include "interface/SaveButton.h" +#include "interface/Label.h" #include "Misc.h" SearchView::SearchView(): ui::Window(ui::Point(0, 0), ui::Point(XRES+BARSIZE, YRES+MENUSIZE)), - saveButtons(vector<ui::SaveButton*>()) + saveButtons(vector<ui::SaveButton*>()), + errorLabel(NULL) { 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"); @@ -24,37 +26,59 @@ void SearchView::NotifySaveListChanged(SearchModel * sender) int i = 0; int buttonWidth, buttonHeight, saveX = 0, saveY = 0, savesX = 4, savesY = 3, buttonPadding = 2; int buttonAreaWidth, buttonAreaHeight, buttonXOffset, buttonYOffset; - buttonXOffset = 0; - buttonYOffset = 50; - buttonAreaWidth = Size.X; - buttonAreaHeight = Size.Y - buttonYOffset - 18; - buttonWidth = (buttonAreaWidth/savesX) - buttonPadding*2; - buttonHeight = (buttonAreaHeight/savesY) - buttonPadding*2; - for(i = 0; i < saveButtons.size(); i++) + + vector<Save> saves = sender->GetSaveList(); + if(!saves.size()) { - RemoveComponent(saveButtons[i]); - delete saveButtons[i]; + if(!errorLabel) + { + errorLabel = new ui::Label(ui::Point(((XRES+BARSIZE)/2)-100, ((YRES+MENUSIZE)/2)-6), ui::Point(200, 12), "Error"); + AddComponent(errorLabel); + } + if(sender->GetLastError().length()) + errorLabel->LabelText = sender->GetLastError(); + else + errorLabel->LabelText = "No saves found"; } - vector<Save> saves = sender->GetSaveList(); - for(i = 0; i < saves.size(); i++) + else { - if(saveX == savesX) + if(errorLabel) + { + RemoveComponent(errorLabel); + delete errorLabel; + errorLabel = NULL; + } + buttonXOffset = 0; + buttonYOffset = 50; + buttonAreaWidth = Size.X; + buttonAreaHeight = Size.Y - buttonYOffset - 18; + buttonWidth = (buttonAreaWidth/savesX) - buttonPadding*2; + buttonHeight = (buttonAreaHeight/savesY) - buttonPadding*2; + for(i = 0; i < saveButtons.size(); i++) + { + RemoveComponent(saveButtons[i]); + delete saveButtons[i]; + } + for(i = 0; i < saves.size(); i++) { - if(saveY == savesY-1) - break; - saveX = 0; - saveY++; + if(saveX == savesX) + { + if(saveY == savesY-1) + break; + saveX = 0; + saveY++; + } + ui::SaveButton * saveButton; + saveButton = new ui::SaveButton( + ui::Point( + buttonXOffset + buttonPadding + saveX*(buttonWidth+buttonPadding*2), + buttonYOffset + buttonPadding + saveY*(buttonHeight+buttonPadding*2) + ), + ui::Point(buttonWidth, buttonHeight), + saves[i]); + saveButtons.push_back(saveButton); + AddComponent(saveButton); + saveX++; } - ui::SaveButton * saveButton; - saveButton = new ui::SaveButton( - ui::Point( - buttonXOffset + buttonPadding + saveX*(buttonWidth+buttonPadding*2), - buttonYOffset + buttonPadding + saveY*(buttonHeight+buttonPadding*2) - ), - ui::Point(buttonWidth, buttonHeight), - saves[i]); - saveButtons.push_back(saveButton); - AddComponent(saveButton); - saveX++; } } diff --git a/src/search/SearchView.h b/src/search/SearchView.h index c68d42c..795fb74 100644 --- a/src/search/SearchView.h +++ b/src/search/SearchView.h @@ -5,6 +5,7 @@ #include "SearchController.h" #include "interface/SaveButton.h" #include "interface/Button.h" +#include "interface/Label.h" using namespace std; @@ -18,6 +19,7 @@ private: vector<ui::SaveButton*> saveButtons; ui::Button * nextButton; ui::Button * previousButton; + ui::Label * errorLabel; public: void NotifySaveListChanged(SearchModel * sender); SearchView(); |
