Skip to content

Commit 27756ef

Browse files
committed
Fixed #22 - All settings are now persistent.
1 parent eccd590 commit 27756ef

File tree

1 file changed

+49
-20
lines changed

1 file changed

+49
-20
lines changed

Silicon/Classes/MainWindowController.swift

Lines changed: 49 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -26,29 +26,41 @@ import Cocoa
2626

2727
public class MainWindowController: NSWindowController
2828
{
29-
@objc public private( set ) dynamic var started = false
30-
@objc public private( set ) dynamic var loading = false
31-
@objc private dynamic var stop = false
32-
@objc public private( set ) dynamic var appsFolderOnly = true
33-
@objc public private( set ) dynamic var recurseIntoApps = false
34-
@objc public private( set ) dynamic var excludeAppleApps = false
35-
@objc public private( set ) dynamic var appCount = UInt64( 0 )
36-
@objc public private( set ) dynamic var archFilter = 0
29+
@objc public private( set ) dynamic var started = false
30+
@objc public private( set ) dynamic var loading = false
31+
@objc private dynamic var stop = false
32+
@objc public private( set ) dynamic var appCount = UInt64( 0 )
33+
34+
@objc public private( set ) dynamic var appsFolderOnly = UserDefaults.standard.value( forKey: "appsFolderOnly" ) == nil ? true : UserDefaults.standard.bool( forKey: "appsFolderOnly" )
3735
{
3836
didSet
3937
{
40-
if self.archFilter == 1
41-
{
42-
self.archFilteredApps.filterPredicate = NSPredicate( format: "isAppleSiliconReady=NO" )
43-
}
44-
else if self.archFilter == 2
45-
{
46-
self.archFilteredApps.filterPredicate = NSPredicate( format: "isAppleSiliconReady=YES" )
47-
}
48-
else
49-
{
50-
self.archFilteredApps.filterPredicate = nil
51-
}
38+
UserDefaults.standard.set( self.appsFolderOnly, forKey: "appsFolderOnly" )
39+
}
40+
}
41+
42+
@objc public private( set ) dynamic var recurseIntoApps = UserDefaults.standard.bool( forKey: "recurseIntoApps" )
43+
{
44+
didSet
45+
{
46+
UserDefaults.standard.set( self.recurseIntoApps, forKey: "recurseIntoApps" )
47+
}
48+
}
49+
50+
@objc public private( set ) dynamic var excludeAppleApps = UserDefaults.standard.bool( forKey: "excludeAppleApps" )
51+
{
52+
didSet
53+
{
54+
UserDefaults.standard.set( self.excludeAppleApps, forKey: "excludeAppleApps" )
55+
}
56+
}
57+
58+
@objc public private( set ) dynamic var archFilter = UserDefaults.standard.integer( forKey: "archFilter" )
59+
{
60+
didSet
61+
{
62+
self.updateArchFilter()
63+
UserDefaults.standard.set( self.archFilter, forKey: "archFilter" )
5264
}
5365
}
5466

@@ -65,6 +77,7 @@ public class MainWindowController: NSWindowController
6577
public override func windowDidLoad()
6678
{
6779
super.windowDidLoad()
80+
self.updateArchFilter()
6881

6982
self.arrayController.sortDescriptors = [
7083
NSSortDescriptor( key: "name", ascending: true, selector: #selector( NSString.localizedCaseInsensitiveCompare( _: ) ) ),
@@ -121,6 +134,22 @@ public class MainWindowController: NSWindowController
121134
return true
122135
}
123136
}
137+
138+
private func updateArchFilter()
139+
{
140+
if self.archFilter == 1
141+
{
142+
self.archFilteredApps.filterPredicate = NSPredicate( format: "isAppleSiliconReady=NO" )
143+
}
144+
else if self.archFilter == 2
145+
{
146+
self.archFilteredApps.filterPredicate = NSPredicate( format: "isAppleSiliconReady=YES" )
147+
}
148+
else
149+
{
150+
self.archFilteredApps.filterPredicate = nil
151+
}
152+
}
124153

125154
public func stopLoading()
126155
{

0 commit comments

Comments
 (0)