From 285a288c802a2346a3a21af8b742d3bb582b11a3 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sun, 7 Aug 2016 21:48:09 -0400 Subject: [PATCH] Switched to two cycles of options loading, meaning that they get set before files are inserted. Might need some further work? --- Machines/Commodore/Vic-20/Vic20.hpp | 2 ++ .../Mac/Clock Signal/Documents/ElectronDocument.swift | 4 ++-- .../Mac/Clock Signal/Documents/MachineDocument.swift | 4 ++-- OSBindings/Mac/Clock Signal/Documents/Vic20Document.swift | 8 +++++--- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Machines/Commodore/Vic-20/Vic20.hpp b/Machines/Commodore/Vic-20/Vic20.hpp index bb7bea522..e51c5b8f0 100644 --- a/Machines/Commodore/Vic-20/Vic20.hpp +++ b/Machines/Commodore/Vic-20/Vic20.hpp @@ -310,6 +310,8 @@ class Machine: // Disk std::shared_ptr<::Commodore::C1540::Machine> _c1540; void install_disk_rom(); + + // Autoload string }; } diff --git a/OSBindings/Mac/Clock Signal/Documents/ElectronDocument.swift b/OSBindings/Mac/Clock Signal/Documents/ElectronDocument.swift index 2790a44e4..e2981da95 100644 --- a/OSBindings/Mac/Clock Signal/Documents/ElectronDocument.swift +++ b/OSBindings/Mac/Clock Signal/Documents/ElectronDocument.swift @@ -66,7 +66,7 @@ class ElectronDocument: MachineDocument { } // MARK: IBActions - @IBOutlet var displayTypeButton: NSPopUpButton! + @IBOutlet var displayTypeButton: NSPopUpButton? @IBAction func setDisplayType(sender: NSPopUpButton!) { electron.useTelevisionOutput = (sender.indexOfSelectedItem == 1) NSUserDefaults.standardUserDefaults().setInteger(sender.indexOfSelectedItem, forKey: self.displayTypeUserDefaultsKey) @@ -82,6 +82,6 @@ class ElectronDocument: MachineDocument { let displayType = standardUserDefaults.integerForKey(self.displayTypeUserDefaultsKey) electron.useTelevisionOutput = (displayType == 1) - self.displayTypeButton.selectItemAtIndex(displayType) + self.displayTypeButton?.selectItemAtIndex(displayType) } } diff --git a/OSBindings/Mac/Clock Signal/Documents/MachineDocument.swift b/OSBindings/Mac/Clock Signal/Documents/MachineDocument.swift index 3c9d8b6cd..64969d0e5 100644 --- a/OSBindings/Mac/Clock Signal/Documents/MachineDocument.swift +++ b/OSBindings/Mac/Clock Signal/Documents/MachineDocument.swift @@ -185,7 +185,7 @@ class MachineDocument: } } - @IBOutlet var fastLoadingButton: NSButton! + @IBOutlet var fastLoadingButton: NSButton? @IBAction func setFastLoading(sender: NSButton!) { if let fastLoadingMachine = machine as? CSFastLoading { let useFastLoadingHack = sender.state == NSOnState @@ -203,7 +203,7 @@ class MachineDocument: if let fastLoadingMachine = machine as? CSFastLoading { let useFastLoadingHack = standardUserDefaults.boolForKey(self.fastLoadingUserDefaultsKey) fastLoadingMachine.useFastLoadingHack = useFastLoadingHack - self.fastLoadingButton.state = useFastLoadingHack ? NSOnState : NSOffState + self.fastLoadingButton?.state = useFastLoadingHack ? NSOnState : NSOffState } } } diff --git a/OSBindings/Mac/Clock Signal/Documents/Vic20Document.swift b/OSBindings/Mac/Clock Signal/Documents/Vic20Document.swift index 71f00230d..7ad6b8c32 100644 --- a/OSBindings/Mac/Clock Signal/Documents/Vic20Document.swift +++ b/OSBindings/Mac/Clock Signal/Documents/Vic20Document.swift @@ -35,6 +35,8 @@ class Vic20Document: MachineDocument { if let drive = dataForResource("1540", ofType: "bin", inDirectory: "ROMImages/Commodore1540") { vic20.setDriveROM(drive) } + + establishStoredOptions() } override class func autosavesInPlace() -> Bool { @@ -67,14 +69,14 @@ class Vic20Document: MachineDocument { vic20.setPRG(data) } - @IBOutlet var loadAutomaticallyButton: NSButton! + @IBOutlet var loadAutomaticallyButton: NSButton? var autoloadingUserDefaultsKey: String { get { return prefixedUserDefaultsKey("autoload") } } @IBAction func setShouldLoadAutomatically(sender: NSButton!) { let loadAutomatically = sender.state == NSOnState vic20.shouldLoadAutomatically = loadAutomatically - self.loadAutomaticallyButton.state = loadAutomatically ? NSOnState : NSOffState + NSUserDefaults.standardUserDefaults().setBool(loadAutomatically, forKey: self.autoloadingUserDefaultsKey) } override func establishStoredOptions() { super.establishStoredOptions() @@ -86,6 +88,6 @@ class Vic20Document: MachineDocument { let loadAutomatically = standardUserDefaults.boolForKey(self.autoloadingUserDefaultsKey) vic20.shouldLoadAutomatically = loadAutomatically - self.loadAutomaticallyButton.state = loadAutomatically ? NSOnState : NSOffState + self.loadAutomaticallyButton?.state = loadAutomatically ? NSOnState : NSOffState } }