Untick publish box for save prompt my default if the save does not belong to the user, addresses issue #43

This commit is contained in:
Simon Robertshaw 2012-08-03 01:11:12 +01:00
parent 96132ee1c1
commit fbaf149a92

View File

@ -62,7 +62,16 @@ ServerSaveActivity::ServerSaveActivity(SaveInfo save, ServerSaveActivity::SaveUp
AddComponent(descriptionField);
publishedCheckbox = new ui::Checkbox(ui::Point(8, 45), ui::Point((Size.X/2)-16, 16), "Publish");
if(Client::Ref().GetAuthUser().Username != save.GetUserName())
{
//Save is not owned by the user, disable by default
publishedCheckbox->SetChecked(false);
}
else
{
//Save belongs to the current user, use published state already set
publishedCheckbox->SetChecked(save.GetPublished());
}
AddComponent(publishedCheckbox);
ui::Button * cancelButton = new ui::Button(ui::Point(0, Size.Y-16), ui::Point((Size.X/2)-50, 16), "Cancel");
@ -85,11 +94,32 @@ ServerSaveActivity::ServerSaveActivity(SaveInfo save, ServerSaveActivity::SaveUp
void ServerSaveActivity::Save()
{
class PublishConfirmation: public ConfirmDialogueCallback {
public:
ServerSaveActivity * a;
PublishConfirmation(ServerSaveActivity * a) : a(a) {}
virtual void ConfirmCallback(ConfirmPrompt::DialogueResult result) {
if (result == ConfirmPrompt::ResultOkay)
{
a->saveUpload();
a->Exit();
}
}
virtual ~PublishConfirmation() { }
};
if(nameField->GetText().length())
{
if(Client::Ref().GetAuthUser().Username != save.GetUserName() && publishedCheckbox->GetChecked())
{
new ConfirmPrompt("Publish", "This save was created by " + save.GetUserName() + ", you're about to publish this under your own name; If you haven't been given permission by the author to do so, please untick the publish box, otherwise continue", new PublishConfirmation(this));
}
else
{
saveUpload();
Exit();
}
}
else
{
new ErrorMessage("Error", "You must specify a save name.");