Limits saving save states to when SaveStatesViewController's mode is .Saving

This commit is contained in:
Riley Testut 2016-03-15 00:55:26 -05:00
parent 01bf9c0e06
commit 0b9e3e2541
2 changed files with 22 additions and 1 deletions

View File

@ -236,6 +236,8 @@ extension EmulationViewController: SaveStatesViewControllerDelegate
{
guard let filepath = saveState.fileURL.path else { return }
var updatingExistingSaveState = true
self.emulatorCore.saveSaveState { temporarySaveState in
do
{
@ -246,6 +248,8 @@ extension EmulationViewController: SaveStatesViewControllerDelegate
else
{
try NSFileManager.defaultManager().moveItemAtURL(temporarySaveState.fileURL, toURL: saveState.fileURL)
updatingExistingSaveState = false
}
}
catch let error as NSError
@ -263,6 +267,13 @@ extension EmulationViewController: SaveStatesViewControllerDelegate
}
saveState.modifiedDate = NSDate()
// Dismiss if updating an existing save state.
// If creating a new one, don't dismiss.
if updatingExistingSaveState
{
self.pauseViewController?.dismiss()
}
}
func saveStatesViewController(saveStatesViewController: SaveStatesViewController, loadSaveState saveState: SaveState)

View File

@ -238,6 +238,11 @@ private extension SaveStatesViewController
saveState.managedObjectContext?.saveWithErrorLogging()
}
func loadSaveState(saveState: SaveState)
{
self.delegate?.saveStatesViewController(self, loadSaveState: saveState)
}
func deleteSaveState(saveState: SaveState)
{
let confirmationAlertController = UIAlertController(title: NSLocalizedString("Confirm Deletion", comment: ""), message: NSLocalizedString("Are you sure you want to delete this save state? This cannot be undone.", comment: ""), preferredStyle: .Alert)
@ -281,7 +286,12 @@ extension SaveStatesViewController
override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath)
{
let saveState = self.fetchedResultsController.objectAtIndexPath(indexPath) as! SaveState
self.delegate?.saveStatesViewController(self, loadSaveState: saveState)
switch self.mode
{
case .Saving: self.updateSaveState(saveState)
case .Loading: self.loadSaveState(saveState)
}
}
override func collectionView(collectionView: UICollectionView, didEndDisplayingCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath)