From 0b9e3e25419bcb8c29da2a190df1eaac5444e769 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Tue, 15 Mar 2016 00:55:26 -0500 Subject: [PATCH] Limits saving save states to when SaveStatesViewController's mode is .Saving --- Delta/Emulation/EmulationViewController.swift | 11 +++++++++++ .../Save States/SaveStatesViewController.swift | 12 +++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/Delta/Emulation/EmulationViewController.swift b/Delta/Emulation/EmulationViewController.swift index 9609ac8..93bf495 100644 --- a/Delta/Emulation/EmulationViewController.swift +++ b/Delta/Emulation/EmulationViewController.swift @@ -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) diff --git a/Delta/Pause Menu/Save States/SaveStatesViewController.swift b/Delta/Pause Menu/Save States/SaveStatesViewController.swift index 4fffa9d..b009aa8 100644 --- a/Delta/Pause Menu/Save States/SaveStatesViewController.swift +++ b/Delta/Pause Menu/Save States/SaveStatesViewController.swift @@ -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)