summaryrefslogtreecommitdiff
path: root/src/search/SearchView.cpp
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/SearchView.cpp
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/SearchView.cpp')
-rw-r--r--src/search/SearchView.cpp80
1 files changed, 52 insertions, 28 deletions
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++;
}
}