X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/28a72418f8254017a166b9307da970e5dc63c7e2..a876619d0c610eaee6aa5e1a105106f265b2c084:/MenuController.m?ds=sidebyside diff --git a/MenuController.m b/MenuController.m index b5d2c21..7c618f5 100755 --- a/MenuController.m +++ b/MenuController.m @@ -15,6 +15,7 @@ #import #import #import +#import @interface MenuController (SubmenuMethods) - (NSMenu *)ratingMenu; @@ -222,7 +223,14 @@ keyEquivalent:@""]; [tempItem setTag:MTMenuPreferencesItem]; [tempItem setTarget:self]; - } else if ([nextObject isEqualToString:@"quit"]) { + } else if ([nextObject isEqualToString:@"about"]) { + ITDebugLog(@"Add \"About MenuTunes...\" menu item."); + tempItem = [menu addItemWithTitle:NSLocalizedString(@"about", @"About MenuTunes...") + action:@selector(performMainMenuAction:) + keyEquivalent:@""]; + [tempItem setTag:MTMenuAboutItem]; + [tempItem setTarget:self]; + } else if ([nextObject isEqualToString:@"quit"]) { if ([[MainController sharedController] blingBling] == NO) { ITDebugLog(@"Add \"Register MenuTunes...\" menu item."); tempItem = [menu addItemWithTitle:NSLocalizedString(@"register", @"Register MenuTunes...") action:@selector(performMainMenuAction:) keyEquivalent:@""]; @@ -238,7 +246,7 @@ } else if ([nextObject isEqualToString:@"trackInfo"]) { ITDebugLog(@"Check to see if a Track is playing..."); //Handle playing radio too - if (_currentPlaylist) { + if (_currentTrack != -1 && _currentPlaylist > 0) { NSString *title = nil; NS_DURING title = [mtr currentSongTitle]; @@ -496,8 +504,10 @@ NSArray *menu = [[NSUserDefaults standardUserDefaults] arrayForKey:@"menu"]; ITDebugLog(@"Rebuilding all of the submenus."); NS_DURING - _currentPlaylist = [[[MainController sharedController] currentRemote] currentPlaylistIndex]; - _currentTrack = [[[MainController sharedController] currentRemote] currentSongIndex]; + _currentTrack = [[[MainController sharedController] currentRemote] currentSongIndex]; + if (_currentTrack > -1) { + _currentPlaylist = [[[MainController sharedController] currentRemote] currentPlaylistIndex]; + } _playingRadio = ([[[MainController sharedController] currentRemote] currentPlaylistClass] == ITMTRemotePlayerRadioPlaylist); NS_HANDLER [[MainController sharedController] networkError:localException]; @@ -529,7 +539,6 @@ ITDebugLog(@"Beginning Rebuild of \"EQ Presets\" submenu."); _eqMenu = [self eqMenu]; } - if (_continue && [menu containsObject:@"artists"]) { ITDebugLog(@"Releasing artists menu"); [_artistsMenu release]; @@ -578,8 +587,11 @@ - (NSMenu *)upcomingSongsMenu { - NSMenu *upcomingSongsMenu = [[NSMenu alloc] initWithTitle:@""]; + NSMenu *upcomingSongsMenu; int numSongs = 0, numSongsInAdvance = [[NSUserDefaults standardUserDefaults] integerForKey:@"SongsInAdvance"]; + if (_currentTrack == -1) { + return nil; + } NS_DURING numSongs = [[[MainController sharedController] currentRemote] numberOfSongsInPlaylistAtIndex:_currentPlaylist]; NS_HANDLER @@ -587,9 +599,9 @@ NS_ENDHANDLER if (numSongs == -1) { - [upcomingSongsMenu release]; return nil; } + upcomingSongsMenu = [[NSMenu alloc] initWithTitle:@""]; NS_DURING ITDebugLog(@"Building \"Upcoming Songs\" menu."); if (_currentPlaylist && !_playingRadio) { @@ -686,7 +698,6 @@ [playlistsMenu release]; return nil; } - NS_DURING ITDebugLog(@"Building \"Playlists\" menu."); { @@ -702,6 +713,7 @@ ITDebugLog(@"Adding index to the index array."); [indices addObject:[curPlaylist objectAtIndex:2]]; } + if ([playlists count] > 1) { if ([[[playlists objectAtIndex:1] objectAtIndex:1] intValue] == ITMTRemoteRadioSource) { [indices addObject:[[playlists objectAtIndex:1] objectAtIndex:2]]; @@ -713,7 +725,7 @@ [playlistsMenu addItem:[NSMenuItem separatorItem]]; } } - + if ([playlists count] > 1) { for (i = 1; i < [playlists count]; i++) { NSArray *curPlaylist = [playlists objectAtIndex:i]; @@ -741,13 +753,15 @@ } ITDebugLog(@"Checking the current source."); NS_DURING - if ( (source == ITMTRemoteSharedLibrarySource) || (source == ITMTRemoteiPodSource) || (source == ITMTRemoteGenericDeviceSource) || (source == ITMTRemoteCDSource) ) { - tempItem = [playlistsMenu itemAtIndex:[playlistsMenu numberOfItems] + [indices indexOfObject:[NSNumber numberWithInt:[[[MainController sharedController] currentRemote] currentSourceIndex]]] - [indices count]]; - [tempItem setState:NSOnState]; - [[[tempItem submenu] itemAtIndex:_currentPlaylist - 1] setState:NSOnState]; - } else if (source == ITMTRemoteLibrarySource && _currentPlaylist) { - [[playlistsMenu itemAtIndex:_currentPlaylist - 1] setState:NSOnState]; - } + if (_currentPlaylist != -1) { + if ( (source == ITMTRemoteSharedLibrarySource) || (source == ITMTRemoteiPodSource) || (source == ITMTRemoteGenericDeviceSource) || (source == ITMTRemoteCDSource) ) { + tempItem = [playlistsMenu itemAtIndex:[playlistsMenu numberOfItems] + [indices indexOfObject:[NSNumber numberWithInt:[[[MainController sharedController] currentRemote] currentSourceIndex]]] - [indices count]]; + [tempItem setState:NSOnState]; + [[[tempItem submenu] itemAtIndex:_currentPlaylist - 1] setState:NSOnState]; + } else if (source == ITMTRemoteLibrarySource && _currentPlaylist) { + [[playlistsMenu itemAtIndex:_currentPlaylist - 1] setState:NSOnState]; + } + } NS_HANDLER NS_ENDHANDLER [indices release]; @@ -870,6 +884,10 @@ ITDebugLog(@"Performing Menu Action: Preferences..."); [[MainController sharedController] showPreferences]; break; + case MTMenuAboutItem: + ITDebugLog(@"Performing Menu Action: About MenuTunes..."); + [[ITAboutWindowController sharedController] showAboutWindow]; + break; case MTMenuQuitItem: ITDebugLog(@"Performing Menu Action: Quit"); [[MainController sharedController] quitMenuTunes];