summaryrefslogtreecommitdiff
path: root/src/search
diff options
context:
space:
mode:
authorSimon 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)
commitc5e8b345219cd7d8ca4b0aa638f59a1fed2cd83b (patch)
tree0d324f7b8d5bf6978f4543af415248b474676b97 /src/search
parent6d3b447f8e32fdaccdb3727af4d72d341e191e94 (diff)
downloadpowder-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.cpp12
-rw-r--r--src/search/SearchModel.h3
-rw-r--r--src/search/SearchView.cpp80
-rw-r--r--src/search/SearchView.h2
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();