Archived
1
This commit is contained in:
Kim Wittenburg
2019-02-01 22:59:01 +01:00
parent ba472864df
commit 0a485ff42a
82 changed files with 3975 additions and 1822 deletions

80
TagTunes/Preference Controllers.swift Normal file → Executable file
View File

@@ -8,43 +8,10 @@
import Cocoa
internal class GeneralPreferencesViewController: NSViewController {
// MARK: IBOutlets
@IBOutlet internal weak var artworkPathControl: NSPathControl!
@IBOutlet internal weak var chooseArtworkButton: NSButton!
override internal func viewDidLoad() {
super.viewDidLoad()
artworkPathControl.URL = Preferences.sharedPreferences.artworkTarget
}
@IBAction internal func saveArtworkStateChanged(sender: AnyObject) {
if Preferences.sharedPreferences.saveArtwork && Preferences.sharedPreferences.artworkTarget == nil {
chooseArtworkPath(sender)
}
}
@IBAction internal func chooseArtworkPath(sender: AnyObject) {
let openPanel = NSOpenPanel()
openPanel.canChooseDirectories = true
openPanel.canChooseFiles = false
openPanel.canCreateDirectories = true
openPanel.prompt = NSLocalizedString("Choose…", comment: "Button title in an open dialog prompting the user to choose a directory")
openPanel.beginSheetModalForWindow(view.window!) {
result in
if result == NSModalResponseOK {
Preferences.sharedPreferences.artworkTarget = openPanel.URL!.filePathURL!
} else if Preferences.sharedPreferences.artworkTarget == nil {
Preferences.sharedPreferences.saveArtwork = false
}
}
}
class GeneralPreferencesViewController: NSViewController {
}
internal class StorePreferencesViewController: NSViewController {
class StorePreferencesViewController: NSViewController {
dynamic var iTunesStores: [String] {
return NSLocale.ISOCountryCodes().map { NSLocale.currentLocale().displayNameForKey(NSLocaleCountryCode, value: $0)! }
@@ -62,7 +29,7 @@ internal class StorePreferencesViewController: NSViewController {
}
internal class TagsPreferencesViewController: NSViewController, NSTableViewDataSource, NSTableViewDelegate, NSMenuDelegate {
class TagsPreferencesViewController: NSViewController, NSTableViewDataSource, NSTableViewDelegate, NSMenuDelegate {
// MARK: Types
@@ -84,12 +51,12 @@ internal class TagsPreferencesViewController: NSViewController, NSTableViewDataS
// MARK: Table View
internal func numberOfRowsInTableView(tableView: NSTableView) -> Int {
return Track.Tag.allTags.count
func numberOfRowsInTableView(tableView: NSTableView) -> Int {
return Tag.allTags.count
}
func tableView(tableView: NSTableView, viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView? {
let tag = Track.Tag.allTags[row]
let tag = Tag.allTags[row]
if tableColumn?.identifier == TableViewConstants.tagTableColumnIdentifier {
let view = tableView.makeViewWithIdentifier(TableViewConstants.textTableCellViewIdentifier, owner: nil) as? NSTableCellView
view?.textField?.stringValue = tag.localizedName
@@ -100,9 +67,7 @@ internal class TagsPreferencesViewController: NSViewController, NSTableViewDataS
if tag.isReturnedBySearchAPI {
popupButton?.addItemWithTitle(NSLocalizedString("Save", comment: "Menu item title for a tag that is going to be saved"))
}
if tag.clearable {
popupButton?.addItemWithTitle(NSLocalizedString("Clear", comment: "Menu item title for a tag that is going to be cleared"))
}
popupButton?.addItemWithTitle(NSLocalizedString("Clear", comment: "Menu item title for a tag that is going to be cleared"))
popupButton?.addItemWithTitle(NSLocalizedString("Ignore", comment: "Menu item title for a tag that is not going to be saved"))
var selectedIndex: Int
@@ -111,17 +76,11 @@ internal class TagsPreferencesViewController: NSViewController, NSTableViewDataS
selectedIndex = 0
case .Clear:
selectedIndex = 1
if !tag.isReturnedBySearchAPI {
--selectedIndex
}
case .Ignore:
selectedIndex = 2
if !tag.isReturnedBySearchAPI {
--selectedIndex
}
if !tag.clearable {
--selectedIndex
}
}
if !tag.isReturnedBySearchAPI {
selectedIndex -= 1
}
popupButton?.selectItemAtIndex(selectedIndex)
return popupButton
@@ -130,27 +89,14 @@ internal class TagsPreferencesViewController: NSViewController, NSTableViewDataS
}
@IBAction private func savingBehaviorChanged(sender: NSPopUpButton) {
let tag = Track.Tag.allTags[tableView.rowForView(sender)]
let tag = Tag.allTags[tableView.rowForView(sender)]
let selectedIndex = sender.indexOfItem(sender.selectedItem!)
var savingBehavior = Preferences.sharedPreferences.tagSavingBehaviors[tag]!
switch selectedIndex {
case 0:
if tag.isReturnedBySearchAPI {
savingBehavior = .Save
} else if tag.clearable {
savingBehavior = .Clear
} else {
savingBehavior = .Ignore
}
savingBehavior = tag.isReturnedBySearchAPI ? .Save : .Clear
case 1:
if tag.isReturnedBySearchAPI {
if tag.clearable {
savingBehavior = .Clear
} else {
savingBehavior = .Ignore
}
}
savingBehavior = .Ignore
savingBehavior = tag.isReturnedBySearchAPI ? .Clear : .Ignore
case 2:
savingBehavior = .Ignore
default: