X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/82086d6a95408227f929ca149591c6fc3962f043..865ed626fce033da225a4a93646ad185f72c74ff:/PreferencesController.m diff --git a/PreferencesController.m b/PreferencesController.m index 50f7397..7e953d9 100755 --- a/PreferencesController.m +++ b/PreferencesController.m @@ -86,6 +86,8 @@ static PreferencesController *prefs = nil; hotKeysArray = [[NSArray alloc] initWithObjects:@"PlayPause", @"NextTrack", @"PrevTrack", + @"FastForward", + @"Rewind", @"ShowPlayer", @"TrackInfo", @"UpcomingSongs", @@ -95,11 +97,20 @@ static PreferencesController *prefs = nil; @"DecrementRating", @"ToggleShuffle", @"ToggleLoop", + @"PopupMenu", + @"SetRating0", + @"SetRating1", + @"SetRating2", + @"SetRating3", + @"SetRating4", + @"SetRating5", nil]; hotKeyNamesArray = [[NSArray alloc] initWithObjects:@"Play/Pause", @"Next Track", @"Previous Track", + @"Fast Forward", + @"Rewind", @"Show Player", @"Track Info", @"Upcoming Songs", @@ -109,6 +120,13 @@ static PreferencesController *prefs = nil; @"Decrement Rating", @"Toggle Shuffle", @"Toggle Loop", + @"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: ★★★★★"], nil]; hotKeysDictionary = [[NSMutableDictionary alloc] init]; controller = nil; @@ -188,6 +206,7 @@ static PreferencesController *prefs = nil; [self setupUI]; // Sets up additional UI [window setDelegate:self]; [menuTableView reloadData]; + [hotKeysTableView reloadData]; [hotKeysTableView setDoubleAction:@selector(hotKeysTableViewDoubleClicked:)]; //Change the launch player checkbox to the proper name @@ -210,12 +229,14 @@ static PreferencesController *prefs = nil; { ITDebugLog(@"Changing general setting of tag %i.", [sender tag]); if ( [sender tag] == 1010) { - //ITSetApplicationLaunchOnLogin([[NSBundle mainBundle] bundlePath], SENDER_STATE); + ITSetApplicationLaunchOnLogin([[NSBundle mainBundle] bundlePath], SENDER_STATE); } else if ( [sender tag] == 1020) { [df setBool:SENDER_STATE forKey:@"LaunchPlayerWithMT"]; } else if ( [sender tag] == 1030) { [df setInteger:[sender intValue] forKey:@"SongsInAdvance"]; - [[controller menuController] rebuildSubmenus]; + if ([[controller currentRemote] playerRunningState] == ITMTRemotePlayerRunning) { + [[controller menuController] performSelector:@selector(rebuildSubmenus) withObject:nil afterDelay:0]; + } } else if ( [sender tag] == 1040) { // This will not be executed. Song info always shows the title of the song. // [df setBool:SENDER_STATE forKey:@"showName"]; @@ -229,6 +250,8 @@ static PreferencesController *prefs = nil; [df setBool:SENDER_STATE forKey:@"showTime"]; } else if ( [sender tag] == 1080) { [df setBool:SENDER_STATE forKey:@"showTrackNumber"]; + } else if ( [sender tag] == 1085) { + [df setBool:SENDER_STATE forKey:@"showPlayCount"]; } else if ( [sender tag] == 1090) { [df setBool:SENDER_STATE forKey:@"showTrackRating"]; } else if ( [sender tag] == 1100) { @@ -558,9 +581,9 @@ static PreferencesController *prefs = nil; [df synchronize]; - /*if (ITDoesApplicationLaunchOnLogin([[NSBundle mainBundle] bundlePath])) { + if (ITDoesApplicationLaunchOnLogin([[NSBundle mainBundle] bundlePath])) { [[StatusWindowController sharedController] showSetupQueryWindow]; - }*/ + } } - (void)autoLaunchOK @@ -569,7 +592,7 @@ static PreferencesController *prefs = nil; [[StatusWindow sharedWindow] vanish:self]; [[StatusWindow sharedWindow] setIgnoresMouseEvents:YES]; - //ITSetApplicationLaunchOnLogin([[NSBundle mainBundle] bundlePath], YES); + ITSetApplicationLaunchOnLogin([[NSBundle mainBundle] bundlePath], YES); } - (void)autoLaunchCancel @@ -716,6 +739,8 @@ static PreferencesController *prefs = nil; @"trackInfo", @"upcomingSongs", @"playlists", + @"artists", + @"albums", @"eqPresets", @"songRating", @"playPause", @@ -742,6 +767,8 @@ static PreferencesController *prefs = nil; submenuItems = [[NSArray alloc] initWithObjects: @"upcomingSongs", @"playlists", + @"artists", + @"albums", @"eqPresets", @"songRating", nil]; @@ -782,6 +809,7 @@ static PreferencesController *prefs = nil; [composerCheckbox setState:[df boolForKey:@"showComposer"] ? NSOnState : NSOffState]; [trackTimeCheckbox setState:[df boolForKey:@"showTime"] ? NSOnState : NSOffState]; [trackNumberCheckbox setState:[df boolForKey:@"showTrackNumber"] ? NSOnState : NSOffState]; + [playCountCheckbox setState:[df boolForKey:@"showPlayCount"] ? NSOnState : NSOffState]; [ratingCheckbox setState:[df boolForKey:@"showTrackRating"] ? NSOnState : NSOffState]; [albumArtworkCheckbox setState:[df boolForKey:@"showAlbumArtwork"] ? NSOnState : NSOffState]; @@ -794,9 +822,9 @@ static PreferencesController *prefs = nil; // Set the launch at login checkbox state ITDebugLog(@"Setting launch at login state."); - /*if (ITDoesApplicationLaunchOnLogin([[NSBundle mainBundle] bundlePath])) { + if (ITDoesApplicationLaunchOnLogin([[NSBundle mainBundle] bundlePath])) { [launchAtLoginCheckbox setState:NSOnState]; - }*/ + } // Set the launch player checkbox state ITDebugLog(@"Setting launch player with MenuTunes state."); @@ -992,6 +1020,8 @@ static PreferencesController *prefs = nil; [df setObject:myItems forKey:@"menu"]; [df synchronize]; + [[controller menuController] performSelector:@selector(rebuildSubmenus) withObject:nil afterDelay:0.0]; + //If we're connected over a network, refresh the menu immediately if ([[NetworkController sharedController] isConnectedToServer]) { [controller timerUpdate];