void LocalSaveActivity::Save() { class FileOverwriteConfirmation: public ConfirmDialogueCallback { public: LocalSaveActivity * a; std::string filename; FileOverwriteConfirmation(LocalSaveActivity * a, std::string finalFilename) : a(a), filename(finalFilename) {} virtual void ConfirmCallback(ConfirmPrompt::DialogueResult result) { if (result == ConfirmPrompt::ResultOkay) { a->saveWrite(filename); a->Exit(); } } virtual ~FileOverwriteConfirmation() { } }; if(filenameField->GetText().length()) { std::string finalFilename = std::string(LOCAL_SAVE_DIR) + std::string(PATH_SEP) + filenameField->GetText() + ".cps"; if(Client::Ref().FileExists(finalFilename)) { new ConfirmPrompt("Overwrite file", "Are you sure you wish to overwrite\n"+finalFilename, new FileOverwriteConfirmation(this, finalFilename)); } else { saveWrite(finalFilename); Exit(); } } else { new ErrorMessage("Error", "You must specify a filename."); } }
void LocalSaveActivity::Save() { class FileOverwriteConfirmation: public ConfirmDialogueCallback { public: LocalSaveActivity * a; ByteString filename; FileOverwriteConfirmation(LocalSaveActivity * a, ByteString finalFilename) : a(a), filename(finalFilename) {} void ConfirmCallback(ConfirmPrompt::DialogueResult result) override { if (result == ConfirmPrompt::ResultOkay) { a->saveWrite(filename); } } virtual ~FileOverwriteConfirmation() { } }; if (filenameField->GetText().Contains('/') || filenameField->GetText().BeginsWith(".")) { new ErrorMessage("Error", "Invalid filename."); } else if (filenameField->GetText().length()) { ByteString finalFilename = ByteString(LOCAL_SAVE_DIR) + ByteString(PATH_SEP) + filenameField->GetText().ToUtf8() + ".cps"; save.SetDisplayName(filenameField->GetText()); save.SetFileName(finalFilename); if(Client::Ref().FileExists(finalFilename)) { new ConfirmPrompt("Overwrite file", "Are you sure you wish to overwrite\n"+finalFilename.FromUtf8(), new FileOverwriteConfirmation(this, finalFilename)); } else { saveWrite(finalFilename); } } else { new ErrorMessage("Error", "You must specify a filename."); } }