X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/d2a384947ca515dfbdc114c326e7ac4667c0397e..01de763e5aad722c6e61891f11ba826beea60992:/PreferencesController.m diff --git a/PreferencesController.m b/PreferencesController.m index 61e0c11..106b9b6 100755 --- a/PreferencesController.m +++ b/PreferencesController.m @@ -6,6 +6,7 @@ #import "StatusWindow.h" #import "StatusWindowController.h" #import "CustomMenuTableView.h" +#import "AudioscrobblerController.h" #import @@ -85,6 +86,10 @@ static PreferencesController *prefs = nil; SecKeychainAttribute attributes[3]; SecKeychainAttributeList list; + if ((user == nil) || ([user length] == 0)) { + return nil; + } + ITDebugLog(@"Audioscrobbler: Searching for keychain item for %@.", user); attributes[0].tag = kSecAccountItemAttr; attributes[0].data = (char *)[user UTF8String]; @@ -267,12 +272,12 @@ static PreferencesController *prefs = nil; @"Toggle Loop", @"Toggle Song Included In Shuffle", @"Pop-up status menu", - [NSString stringWithUTF8String:"Set Rating: ☆☆☆☆☆"], - [NSString stringWithUTF8String:"Set Rating: ★☆☆☆☆"], - [NSString stringWithUTF8String:"Set Rating: ★★☆☆☆"], - [NSString stringWithUTF8String:"Set Rating: ★★★☆☆"], - [NSString stringWithUTF8String:"Set Rating: ★★★★☆"], - [NSString stringWithUTF8String:"Set Rating: ★★★★★"], + [NSString stringWithUTF8String:"Set Rating: ‚òÜ‚òÜ‚òÜ‚òÜ‚òÜ"], + [NSString stringWithUTF8String:"Set Rating: ‚òÖ‚òÜ‚òÜ‚òÜ‚òÜ"], + [NSString stringWithUTF8String:"Set Rating: ‚òÖ‚òÖ‚òÜ‚òÜ‚òÜ"], + [NSString stringWithUTF8String:"Set Rating: ‚òÖ‚òÖ‚òÖ‚òÜ‚òÜ"], + [NSString stringWithUTF8String:"Set Rating: ‚òÖ‚òÖ‚òÖ‚òÖ‚òÜ"], + [NSString stringWithUTF8String:"Set Rating: ‚òÖ‚òÖ‚òÖ‚òÖ‚òÖ"], nil]; hotKeysDictionary = [[NSMutableDictionary alloc] init]; controller = nil; @@ -421,6 +426,9 @@ static PreferencesController *prefs = nil; [audioscrobblerUseCacheCheckbox setEnabled:SENDER_STATE]; [audioscrobblerUserTextField setEnabled:SENDER_STATE]; [audioscrobblerPasswordTextField setEnabled:SENDER_STATE]; + if (SENDER_STATE) { + [[AudioscrobblerController sharedController] attemptHandshake:NO]; + } } else if ( [sender tag ] == 6015) { //Here we create a new keychain item if needed and deletes the keychain item if the field is cleared. NSString *currentAccount = [df stringForKey:@"audioscrobblerUser"], *newAccount = [sender stringValue]; @@ -433,6 +441,7 @@ static PreferencesController *prefs = nil; [PreferencesController deleteKeychainItemForUser:currentAccount]; } [PreferencesController createKeychainItemForUser:newAccount andPassword:[audioscrobblerPasswordTextField stringValue]]; + [[AudioscrobblerController sharedController] attemptHandshake:YES]; } } else if ( [sender tag ] == 6030) { //Here we set the password for an existing keychain item or we create a new keychain item. @@ -601,7 +610,7 @@ static PreferencesController *prefs = nil; - (IBAction)changeStatusWindowSetting:(id)sender { - StatusWindow *sw = [StatusWindow sharedWindow]; + StatusWindow *sw = (StatusWindow *)[StatusWindow sharedWindow]; ITDebugLog(@"Changing status window setting of tag %i", [sender tag]); if ( [sender tag] == 2010) { @@ -884,6 +893,11 @@ static PreferencesController *prefs = nil; #pragma mark PRIVATE METHOD IMPLEMENTATIONS /*************************************************************************/ +- (void)audioscrobblerStatusChanged:(NSNotification *)note +{ + [audioscrobblerStatusTextField setStringValue:[[note userInfo] objectForKey:@"StatusString"]]; +} + - (void)setupWindow { ITDebugLog(@"Loading Preferences.nib."); @@ -969,6 +983,12 @@ static PreferencesController *prefs = nil; int selectedBGStyle; id anItem; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(audioscrobblerStatusChanged:) name:@"AudioscrobblerStatusChanged" object:nil]; + if ([df boolForKey:@"audioscrobblerEnabled"]) { + NSString *status = [[AudioscrobblerController sharedController] lastStatus]; + [audioscrobblerStatusTextField setStringValue:(status == nil) ? @"Idle" : status]; + } + [df setInteger:MT_CURRENT_VERSION forKey:@"appVersion"]; ITDebugLog(@"Setting up preferences UI."); @@ -1160,7 +1180,7 @@ static PreferencesController *prefs = nil; - (void)setStatusWindowEntryEffect:(Class)effectClass { - StatusWindow *sw = [StatusWindow sharedWindow]; + StatusWindow *sw = (StatusWindow *)[StatusWindow sharedWindow]; float time = ([df floatForKey:@"statusWindowAppearanceSpeed"] ? [df floatForKey:@"statusWindowAppearanceSpeed"] : 0.8); [df setObject:NSStringFromClass(effectClass) forKey:@"statusWindowAppearanceEffect"]; @@ -1171,7 +1191,7 @@ static PreferencesController *prefs = nil; - (void)setStatusWindowExitEffect:(Class)effectClass { - StatusWindow *sw = [StatusWindow sharedWindow]; + StatusWindow *sw = (StatusWindow *)[StatusWindow sharedWindow]; float time = ([df floatForKey:@"statusWindowVanishSpeed"] ? [df floatForKey:@"statusWindowVanishSpeed"] : 0.8); [df setObject:NSStringFromClass(effectClass) forKey:@"statusWindowVanishEffect"];