diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2013-03-22 14:14:17 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2013-03-22 14:14:17 (GMT) |
| commit | 9abe51526cac2634af0541c3de69834dd30e9f78 (patch) | |
| tree | 6ae4deadfe00a83094b9d288d8c11d8ce823577a /src/search/SearchController.cpp | |
| parent | 2c311b9a36a88fadd96f3d39acb1ab2590835d81 (diff) | |
| download | powder-9abe51526cac2634af0541c3de69834dd30e9f78.zip powder-9abe51526cac2634af0541c3de69834dd30e9f78.tar.gz | |
Move all GUI source files into gui/
Diffstat (limited to 'src/search/SearchController.cpp')
| -rw-r--r-- | src/search/SearchController.cpp | 364 |
1 files changed, 0 insertions, 364 deletions
diff --git a/src/search/SearchController.cpp b/src/search/SearchController.cpp deleted file mode 100644 index 4c97342..0000000 --- a/src/search/SearchController.cpp +++ /dev/null @@ -1,364 +0,0 @@ -#include <string> -#include <sstream> -#include <time.h> -#include "SearchController.h" -#include "SearchModel.h" -#include "SearchView.h" -#include "interface/Panel.h" -#include "dialogues/ConfirmPrompt.h" -#include "dialogues/ErrorMessage.h" -#include "preview/PreviewController.h" -#include "client/Client.h" -#include "tasks/Task.h" -#include "tasks/TaskWindow.h" - -class SearchController::OpenCallback: public ControllerCallback -{ - SearchController * cc; -public: - OpenCallback(SearchController * cc_) { cc = cc_; } - virtual void ControllerExit() - { - if(cc->activePreview->GetDoOpen() && cc->activePreview->GetSave()) - { - cc->searchModel->SetLoadedSave(cc->activePreview->GetSave()); - } - else - { - cc->searchModel->SetLoadedSave(NULL); - } - - } -}; - -SearchController::SearchController(ControllerCallback * callback): - activePreview(NULL), - HasExited(false), - nextQueryTime(0.0f), - nextQueryDone(true), - searchModel(NULL) -{ - searchModel = new SearchModel(); - searchView = new SearchView(); - searchModel->AddObserver(searchView); - searchView->AttachController(this); - - searchModel->UpdateSaveList(1, ""); - - this->callback = callback; - - //Set up interface - //windowPanel.AddChild(); -} - -SaveInfo * SearchController::GetLoadedSave() -{ - return searchModel->GetLoadedSave(); -} - -void SearchController::ReleaseLoadedSave() -{ - searchModel->SetLoadedSave(NULL); -} - -void SearchController::Update() -{ - if(!nextQueryDone && nextQueryTime < clock()) - { - nextQueryDone = true; - searchModel->UpdateSaveList(1, nextQuery); - } - searchModel->Update(); - if(activePreview && activePreview->HasExited) - { - delete activePreview; - activePreview = NULL; - if(searchModel->GetLoadedSave()) - { - Exit(); - } - } -} - -void SearchController::Exit() -{ - if(ui::Engine::Ref().GetWindow() == searchView) - { - ui::Engine::Ref().CloseWindow(); - } - if(callback) - callback->ControllerExit(); - //HasExited = true; -} - -SearchController::~SearchController() -{ - if(activePreview) - delete activePreview; - if(ui::Engine::Ref().GetWindow() == searchView) - { - ui::Engine::Ref().CloseWindow(); - } - delete searchModel; - delete searchView; - delete callback; -} - -void SearchController::DoSearch(std::string query, bool now) -{ - nextQuery = query; - if(!now) - { - nextQueryTime = clock()+(0.6 * CLOCKS_PER_SEC); - nextQueryDone = false; - } - else - { - nextQueryDone = true; - searchModel->UpdateSaveList(1, nextQuery); - } - //searchModel->UpdateSaveList(1, query); -} - -void SearchController::PrevPage() -{ - if(searchModel->GetPageNum()>1) - searchModel->UpdateSaveList(searchModel->GetPageNum()-1, searchModel->GetLastQuery()); -} - -void SearchController::NextPage() -{ - if(searchModel->GetPageNum() <= searchModel->GetPageCount()) - searchModel->UpdateSaveList(searchModel->GetPageNum()+1, searchModel->GetLastQuery()); -} - -void SearchController::ChangeSort() -{ - if(searchModel->GetSort() == "new") - { - searchModel->SetSort("best"); - } - else - { - searchModel->SetSort("new"); - } - searchModel->UpdateSaveList(1, searchModel->GetLastQuery()); -} - -void SearchController::ShowOwn(bool show) -{ - if(Client::Ref().GetAuthUser().ID) - { - searchModel->SetShowFavourite(false); - searchModel->SetShowOwn(show); - } - else - searchModel->SetShowOwn(false); - searchModel->UpdateSaveList(1, searchModel->GetLastQuery()); -} - -void SearchController::ShowFavourite(bool show) -{ - if(Client::Ref().GetAuthUser().ID) - { - searchModel->SetShowOwn(false); - searchModel->SetShowFavourite(show); - } - else - searchModel->SetShowFavourite(false); - searchModel->UpdateSaveList(1, searchModel->GetLastQuery()); -} - -void SearchController::Selected(int saveID, bool selected) -{ - if(!Client::Ref().GetAuthUser().ID) - return; - - if(selected) - searchModel->SelectSave(saveID); - else - searchModel->DeselectSave(saveID); -} - -void SearchController::OpenSave(int saveID) -{ - if(activePreview) - delete activePreview; - activePreview = new PreviewController(saveID, new OpenCallback(this)); - ui::Engine::Ref().ShowWindow(activePreview->GetView()); -} - -void SearchController::OpenSave(int saveID, int saveDate) -{ - if(activePreview) - delete activePreview; - activePreview = new PreviewController(saveID, saveDate, new OpenCallback(this)); - ui::Engine::Ref().ShowWindow(activePreview->GetView()); -} - -void SearchController::ClearSelection() -{ - searchModel->ClearSelected(); -} - -void SearchController::RemoveSelected() -{ - class RemoveSelectedConfirmation: public ConfirmDialogueCallback { - public: - SearchController * c; - RemoveSelectedConfirmation(SearchController * c_) { c = c_; } - virtual void ConfirmCallback(ConfirmPrompt::DialogueResult result) { - if (result == ConfirmPrompt::ResultOkay) - c->removeSelectedC(); - } - virtual ~RemoveSelectedConfirmation() { } - }; - - std::stringstream desc; - desc << "Are you sure you want to delete " << searchModel->GetSelected().size() << " save"; - if(searchModel->GetSelected().size()>1) - desc << "s"; - new ConfirmPrompt("Delete saves", desc.str(), new RemoveSelectedConfirmation(this)); -} - -void SearchController::removeSelectedC() -{ - class RemoveSavesTask : public Task - { - std::vector<int> saves; - public: - RemoveSavesTask(std::vector<int> saves_) { saves = saves_; } - virtual bool doWork() - { - for(int i = 0; i < saves.size(); i++) - { - std::stringstream saveID; - saveID << "Deleting save [" << saves[i] << "] ..."; - notifyStatus(saveID.str()); - if(Client::Ref().DeleteSave(saves[i])!=RequestOkay) - { - std::stringstream saveIDF; - saveIDF << "\boFailed to delete [" << saves[i] << "] ..."; - notifyStatus(saveIDF.str()); - } - notifyProgress((float(i+1)/float(saves.size())*100)); - } - return true; - } - }; - - std::vector<int> selected = searchModel->GetSelected(); - new TaskWindow("Removing saves", new RemoveSavesTask(selected)); - ClearSelection(); - searchModel->UpdateSaveList(searchModel->GetPageNum(), searchModel->GetLastQuery()); -} - -void SearchController::UnpublishSelected() -{ - class UnpublishSelectedConfirmation: public ConfirmDialogueCallback { - public: - SearchController * c; - UnpublishSelectedConfirmation(SearchController * c_) { c = c_; } - virtual void ConfirmCallback(ConfirmPrompt::DialogueResult result) { - if (result == ConfirmPrompt::ResultOkay) - c->unpublishSelectedC(); - } - virtual ~UnpublishSelectedConfirmation() { } - }; - - std::stringstream desc; - desc << "Are you sure you want to hide " << searchModel->GetSelected().size() << " save"; - if(searchModel->GetSelected().size()>1) - desc << "s"; - new ConfirmPrompt("Unpublish saves", desc.str(), new UnpublishSelectedConfirmation(this)); -} - -void SearchController::unpublishSelectedC() -{ - class UnpublishSavesTask : public Task - { - std::vector<int> saves; - public: - UnpublishSavesTask(std::vector<int> saves_) { saves = saves_; } - virtual bool doWork() - { - for(int i = 0; i < saves.size(); i++) - { - std::stringstream saveID; - saveID << "Hiding save [" << saves[i] << "] ..."; - notifyStatus(saveID.str()); - if(Client::Ref().UnpublishSave(saves[i])!=RequestOkay) - { - std::stringstream saveIDF; - saveIDF << "\boFailed to hide [" << saves[i] << "] ..."; - notifyStatus(saveIDF.str()); - } - notifyProgress((float(i+1)/float(saves.size())*100)); - } - return true; - } - }; - - std::vector<int> selected = searchModel->GetSelected(); - new TaskWindow("Unpublishing saves", new UnpublishSavesTask(selected)); - ClearSelection(); - searchModel->UpdateSaveList(searchModel->GetPageNum(), searchModel->GetLastQuery()); -} - -void SearchController::FavouriteSelected() -{ - class FavouriteSavesTask : public Task - { - std::vector<int> saves; - public: - FavouriteSavesTask(std::vector<int> saves_) { saves = saves_; } - virtual bool doWork() - { - for(int i = 0; i < saves.size(); i++) - { - std::stringstream saveID; - saveID << "Favouring save [" << saves[i] << "] ..."; - notifyStatus(saveID.str()); - if(Client::Ref().FavouriteSave(saves[i], true)!=RequestOkay) - { - std::stringstream saveIDF; - saveIDF << "\boFailed to favourite [" << saves[i] << "] ..."; - notifyStatus(saveIDF.str()); - } - notifyProgress((float(i+1)/float(saves.size())*100)); - } - return true; - } - }; - - class UnfavouriteSavesTask : public Task - { - std::vector<int> saves; - public: - UnfavouriteSavesTask(std::vector<int> saves_) { saves = saves_; } - virtual bool doWork() - { - for(int i = 0; i < saves.size(); i++) - { - std::stringstream saveID; - saveID << "Unfavouring save [" << saves[i] << "] ..."; - notifyStatus(saveID.str()); - if(Client::Ref().FavouriteSave(saves[i], false)!=RequestOkay) - { - std::stringstream saveIDF; - saveIDF << "\boFailed to remove [" << saves[i] << "] ..."; - notifyStatus(saveIDF.str()); - } - notifyProgress((float(i+1)/float(saves.size())*100)); - } - return true; - } - }; - - std::vector<int> selected = searchModel->GetSelected(); - if(!searchModel->GetShowFavourite()) - new TaskWindow("Favouring saves", new FavouriteSavesTask(selected)); - else - new TaskWindow("Unfavouring saves", new UnfavouriteSavesTask(selected)); - ClearSelection(); -} |
