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 } guard let filepath = saveState.fileURL.path else { return }
var updatingExistingSaveState = true
self.emulatorCore.saveSaveState { temporarySaveState in self.emulatorCore.saveSaveState { temporarySaveState in
do do
{ {
@ -246,6 +248,8 @@ extension EmulationViewController: SaveStatesViewControllerDelegate
else else
{ {
try NSFileManager.defaultManager().moveItemAtURL(temporarySaveState.fileURL, toURL: saveState.fileURL) try NSFileManager.defaultManager().moveItemAtURL(temporarySaveState.fileURL, toURL: saveState.fileURL)
updatingExistingSaveState = false
} }
} }
catch let error as NSError catch let error as NSError
@ -263,6 +267,13 @@ extension EmulationViewController: SaveStatesViewControllerDelegate
} }
saveState.modifiedDate = NSDate() 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) func saveStatesViewController(saveStatesViewController: SaveStatesViewController, loadSaveState saveState: SaveState)

View File

@ -238,6 +238,11 @@ private extension SaveStatesViewController
saveState.managedObjectContext?.saveWithErrorLogging() saveState.managedObjectContext?.saveWithErrorLogging()
} }
func loadSaveState(saveState: SaveState)
{
self.delegate?.saveStatesViewController(self, loadSaveState: saveState)
}
func deleteSaveState(saveState: 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) 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) override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath)
{ {
let saveState = self.fetchedResultsController.objectAtIndexPath(indexPath) as! SaveState 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) override func collectionView(collectionView: UICollectionView, didEndDisplayingCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath)