summaryrefslogtreecommitdiff
path: root/src/search
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-09-05 19:24:46 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-09-05 19:24:46 (GMT)
commit37129abbc6fd94f2cd9ae094bde5282ff71750a4 (patch)
treea98bb20509d3a0adf989a58721c60868e4220090 /src/search
parent5da70ef8a633328d7441fd08c7e8592247f52f7b (diff)
downloadpowder-37129abbc6fd94f2cd9ae094bde5282ff71750a4.zip
powder-37129abbc6fd94f2cd9ae094bde5282ff71750a4.tar.gz
Allow mass unfavouring, unfavouring from the preview view. Fixes #149
Diffstat (limited to 'src/search')
-rw-r--r--src/search/SearchController.cpp29
-rw-r--r--src/search/SearchView.cpp9
2 files changed, 35 insertions, 3 deletions
diff --git a/src/search/SearchController.cpp b/src/search/SearchController.cpp
index d7d422c..2c6b78f 100644
--- a/src/search/SearchController.cpp
+++ b/src/search/SearchController.cpp
@@ -316,7 +316,34 @@ void SearchController::FavouriteSelected()
}
};
+ 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();
- new TaskWindow("Favouring saves", new FavouriteSavesTask(selected));
+ if(!searchModel->GetShowFavourite())
+ new TaskWindow("Favouring saves", new FavouriteSavesTask(selected));
+ else
+ new TaskWindow("Unfavouring saves", new UnfavouriteSavesTask(selected));
ClearSelection();
}
diff --git a/src/search/SearchView.cpp b/src/search/SearchView.cpp
index 1211cfc..7834c93 100644
--- a/src/search/SearchView.cpp
+++ b/src/search/SearchView.cpp
@@ -277,7 +277,7 @@ void SearchView::NotifyShowOwnChanged(SearchModel * sender)
else if(sender->GetShowFavourite())
{
unpublishSelected->Enabled = false;
- removeSelected->Enabled = true;
+ removeSelected->Enabled = false;
}
else
{
@@ -292,7 +292,7 @@ void SearchView::NotifyShowFavouriteChanged(SearchModel * sender)
if(sender->GetShowFavourite())
{
unpublishSelected->Enabled = false;
- removeSelected->Enabled = true;
+ removeSelected->Enabled = false;
}
else if(sender->GetShowOwn() || Client::Ref().GetAuthUser().UserElevation == User::ElevationAdmin || Client::Ref().GetAuthUser().UserElevation == User::ElevationModerator)
{
@@ -498,6 +498,11 @@ void SearchView::NotifySaveListChanged(SearchModel * sender)
vector<SaveInfo*> saves = sender->GetSaveList();
//string messageOfTheDay = sender->GetMessageOfTheDay();
+ if(sender->GetShowFavourite())
+ favouriteSelected->SetText("Unfavourite");
+ else
+ favouriteSelected->SetText("Favourite");
+
Client::Ref().ClearThumbnailRequests();
for(i = 0; i < saveButtons.size(); i++)
{