70 lines
2.5 KiB
Swift
70 lines
2.5 KiB
Swift
//
|
|
// Preferences.swift
|
|
// TagTunes
|
|
//
|
|
// Created by Kim Wittenburg on 29.08.15.
|
|
// Copyright © 2015 Kim Wittenburg. All rights reserved.
|
|
//
|
|
|
|
import Cocoa
|
|
|
|
/// A custom interface for the `NSUserDefaults`. It is recommended to use this
|
|
/// class insted of accessing the user defaults directly to prevent errors due
|
|
/// to misspelled strings.
|
|
///
|
|
/// All properties in this class are KCO compliant.
|
|
@objc public class Preferences: NSObject {
|
|
|
|
public static var sharedPreferences = Preferences()
|
|
|
|
/// Initializes the default preferences. This method must be called the very
|
|
/// first time the application is launched. It is perfectly valid to call
|
|
/// this method every time the application launches. Existing values are not
|
|
/// overridden.
|
|
public func initializeDefaultValues() {
|
|
let initialArtworkFolder = NSURL.fileURLWithPath(NSHomeDirectory(), isDirectory: true)
|
|
NSUserDefaults.standardUserDefaults().registerDefaults([
|
|
"Save Artwork": false,
|
|
"Keep Search Results": false,
|
|
"Remove Saved Albums": false])
|
|
if NSUserDefaults.standardUserDefaults().URLForKey("Artwork Target") == nil {
|
|
NSUserDefaults.standardUserDefaults().setURL(initialArtworkFolder, forKey: "Artwork Target")
|
|
}
|
|
}
|
|
|
|
/// If `true` the album artwork should be saved to the `artworkTarget` URL
|
|
/// when an item is saved.
|
|
public dynamic var saveArtwork: Bool {
|
|
set {
|
|
NSUserDefaults.standardUserDefaults().setBool(newValue, forKey: "Save Artwork")
|
|
}
|
|
get {
|
|
return NSUserDefaults.standardUserDefaults().boolForKey("Save Artwork")
|
|
}
|
|
}
|
|
|
|
/// The URL of the folder album artwork is saved to.
|
|
///
|
|
/// The URL must be a valid file URL pointing to a directory.
|
|
public dynamic var artworkTarget: NSURL {
|
|
set {
|
|
NSUserDefaults.standardUserDefaults().setURL(newValue, forKey: "Artwork Target")
|
|
}
|
|
get {
|
|
return NSUserDefaults.standardUserDefaults().URLForKey("Artwork Target")!
|
|
}
|
|
}
|
|
|
|
/// If `true` the search results are not removed from the main outline view
|
|
/// when the user selects a result.
|
|
public dynamic var keepSearchResults: Bool {
|
|
set {
|
|
NSUserDefaults.standardUserDefaults().setBool(newValue, forKey: "Keep Search Results")
|
|
}
|
|
get {
|
|
return NSUserDefaults.standardUserDefaults().boolForKey("Keep Search Results")
|
|
}
|
|
}
|
|
|
|
}
|