X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/28a72418f8254017a166b9307da970e5dc63c7e2..0948b4b6166bbee8caefca1278b6551d264068a8:/MenuController.m diff --git a/MenuController.m b/MenuController.m index b5d2c21..a7147a4 100755 --- a/MenuController.m +++ b/MenuController.m @@ -238,7 +238,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 +496,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 +531,6 @@ ITDebugLog(@"Beginning Rebuild of \"EQ Presets\" submenu."); _eqMenu = [self eqMenu]; } - if (_continue && [menu containsObject:@"artists"]) { ITDebugLog(@"Releasing artists menu"); [_artistsMenu release]; @@ -578,8 +579,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 +591,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 +690,6 @@ [playlistsMenu release]; return nil; } - NS_DURING ITDebugLog(@"Building \"Playlists\" menu."); { @@ -702,6 +705,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 +717,7 @@ [playlistsMenu addItem:[NSMenuItem separatorItem]]; } } - + if ([playlists count] > 1) { for (i = 1; i < [playlists count]; i++) { NSArray *curPlaylist = [playlists objectAtIndex:i]; @@ -741,13 +745,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];