X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/2c356967e9652ae92e46a9b5f96ac15a92db7691..e350cc5032334a724daffdf6d2016e3653efc825:/PreferencesController.m diff --git a/PreferencesController.m b/PreferencesController.m index ba70e0d..9d8e2f0 100755 --- a/PreferencesController.m +++ b/PreferencesController.m @@ -94,25 +94,42 @@ static PreferencesController *prefs = nil; - (IBAction)changeGeneralSetting:(id)sender { + BOOL rebuildRequired = NO; + if ( [sender tag] == 1010) { [self setLaunchesAtLogin:SENDER_STATE]; } else if ( [sender tag] == 1020) { [df setBool:SENDER_STATE forKey:@"LaunchPlayerWithMT"]; } else if ( [sender tag] == 1030) { [df setInteger:[sender intValue] forKey:@"SongsInAdvance"]; + rebuildRequired = YES; } else if ( [sender tag] == 1040) { - [df setBool:SENDER_STATE forKey:@"showAlbum"]; + // This will not be executed. Song info always shows the title of the song. + // [df setBool:SENDER_STATE forKey:@"showName"]; + // rebuildRequired = YES; } else if ( [sender tag] == 1050) { - [df setBool:SENDER_STATE forKey:@"showName"]; - } else if ( [sender tag] == 1060) { [df setBool:SENDER_STATE forKey:@"showArtist"]; + rebuildRequired = YES; + } else if ( [sender tag] == 1060) { + [df setBool:SENDER_STATE forKey:@"showAlbum"]; + rebuildRequired = YES; } else if ( [sender tag] == 1070) { [df setBool:SENDER_STATE forKey:@"showTime"]; + rebuildRequired = YES; } else if ( [sender tag] == 1080) { [df setBool:SENDER_STATE forKey:@"showTrackNumber"]; + rebuildRequired = YES; } else if ( [sender tag] == 1090) { [df setBool:SENDER_STATE forKey:@"showTrackRating"]; + rebuildRequired = YES; } + + if ( rebuildRequired ) { + [controller rebuildMenu]; + // redraw song info status window, or upcoming songs here + } + + [df synchronize]; } - (IBAction)changeStatusWindowSetting:(id)sender @@ -135,6 +152,7 @@ static PreferencesController *prefs = nil; // Update vanish delay } else if ( [sender tag] == 2080) { // Update "Song Info window when song changes" setting. + [df setBool:SENDER_STATE forKey:@"showSongInfoOnChange"]; } } @@ -216,7 +234,7 @@ static PreferencesController *prefs = nil; nil] forKey:@"menu"]; [df setInteger:5 forKey:@"SongsInAdvance"]; - [df setBool:YES forKey:@"showName"]; + // [df setBool:YES forKey:@"showName"]; // Song info will always show song title. [df setBool:YES forKey:@"showArtist"]; [df setBool:NO forKey:@"showAlbum"]; [df setBool:NO forKey:@"showTime"]; @@ -442,6 +460,8 @@ static PreferencesController *prefs = nil; toggleShuffleCombo = [combo copy]; [toggleShuffleButton setTitle:string]; } + [df setKeyCombo:combo forKey:setHotKey]; + [controller rebuildMenu]; [self cancelHotKey:sender]; } @@ -651,7 +671,8 @@ static PreferencesController *prefs = nil; // Check current track info buttons [albumCheckbox setState:[df boolForKey:@"showAlbum"] ? NSOnState : NSOffState]; - [nameCheckbox setState:[df boolForKey:@"showName"] ? NSOnState : NSOffState]; + [nameCheckbox setState:NSOnState]; // Song info will ALWAYS show song title. + [nameCheckbox setEnabled:NO]; // Song info will ALWAYS show song title. [artistCheckbox setState:[df boolForKey:@"showArtist"] ? NSOnState : NSOffState]; [trackTimeCheckbox setState:[df boolForKey:@"showTime"] ? NSOnState : NSOffState]; @@ -760,7 +781,11 @@ static PreferencesController *prefs = nil; { if (aTableView == menuTableView) { if ([[aTableColumn identifier] isEqualToString:@"name"]) { - return [myItems objectAtIndex:rowIndex]; + NSString *object = [myItems objectAtIndex:rowIndex]; + if ([object isEqualToString:@"Show Player"]) { + return [NSString stringWithFormat:@"Show %@", [[controller currentRemote] playerSimpleName]]; + } + return object; } else { if ([submenuItems containsObject:[myItems objectAtIndex:rowIndex]]) {