Allow mass unfavouring, unfavouring from the preview view. Fixes #149
This commit is contained in:
parent
5da70ef8a6
commit
37129abbc6
@ -119,7 +119,13 @@ void PreviewController::Report(std::string message)
|
||||
|
||||
void PreviewController::FavouriteSave()
|
||||
{
|
||||
previewModel->SetFavourite(true);
|
||||
if(previewModel->GetSave() && Client::Ref().GetAuthUser().ID)
|
||||
{
|
||||
if(previewModel->GetSave()->Favourite)
|
||||
previewModel->SetFavourite(false);
|
||||
else
|
||||
previewModel->SetFavourite(true);
|
||||
}
|
||||
}
|
||||
|
||||
void PreviewController::OpenInBrowser()
|
||||
|
@ -71,7 +71,7 @@ void * PreviewModel::updateSaveCommentsT()
|
||||
|
||||
void PreviewModel::SetFavourite(bool favourite)
|
||||
{
|
||||
//if(save)
|
||||
if(save)
|
||||
{
|
||||
Client::Ref().FavouriteSave(save->id, favourite);
|
||||
save->Favourite = favourite;
|
||||
|
@ -88,7 +88,7 @@ PreviewView::PreviewView():
|
||||
}
|
||||
};
|
||||
|
||||
favButton = new ui::Button(ui::Point(50, Size.Y-19), ui::Point(51, 19), "Fav.");
|
||||
favButton = new ui::Button(ui::Point(50, Size.Y-19), ui::Point(51, 19), "Fav");
|
||||
favButton->Appearance.HorizontalAlign = ui::Appearance::AlignLeft; favButton->Appearance.VerticalAlign = ui::Appearance::AlignMiddle;
|
||||
favButton->SetIcon(IconFavourite);
|
||||
favButton->SetActionCallback(new FavAction(this));
|
||||
@ -380,9 +380,20 @@ void PreviewView::NotifySaveChanged(PreviewModel * sender)
|
||||
viewsLabel->SetText("\bgViews:\bw " + format::NumberToString<int>(save->Views));
|
||||
saveDescriptionLabel->SetText(save->Description);
|
||||
if(save->Favourite)
|
||||
favButton->Enabled = false;
|
||||
else if(Client::Ref().GetAuthUser().ID)
|
||||
{
|
||||
favButton->Enabled = true;
|
||||
favButton->SetText("Unfav");
|
||||
}
|
||||
else if(Client::Ref().GetAuthUser().ID)
|
||||
{
|
||||
favButton->Enabled = true;
|
||||
favButton->SetText("Fav");
|
||||
}
|
||||
else
|
||||
{
|
||||
favButton->SetText("Fav");
|
||||
favButton->Enabled = false;
|
||||
}
|
||||
|
||||
if(save->GetGameSave())
|
||||
{
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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++)
|
||||
{
|
||||
|
Reference in New Issue
Block a user