#import <ITKit/ITHotKey.h>
#import <ITKit/ITKeyCombo.h>
#import <ITKit/ITCategory-NSMenu.h>
+#import <ITKit/ITAboutWindowController.h>
@interface MenuController (SubmenuMethods)
- (NSMenu *)ratingMenu;
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:@""];
} 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];
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];
ITDebugLog(@"Beginning Rebuild of \"EQ Presets\" submenu.");
_eqMenu = [self eqMenu];
}
-
if (_continue && [menu containsObject:@"artists"]) {
ITDebugLog(@"Releasing artists menu");
[_artistsMenu release];
- (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
NS_ENDHANDLER
if (numSongs == -1) {
- [upcomingSongsMenu release];
return nil;
}
+ upcomingSongsMenu = [[NSMenu alloc] initWithTitle:@""];
NS_DURING
ITDebugLog(@"Building \"Upcoming Songs\" menu.");
if (_currentPlaylist && !_playingRadio) {
[playlistsMenu release];
return nil;
}
-
NS_DURING
ITDebugLog(@"Building \"Playlists\" menu.");
{
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]];
[playlistsMenu addItem:[NSMenuItem separatorItem]];
}
}
-
+
if ([playlists count] > 1) {
for (i = 1; i < [playlists count]; i++) {
NSArray *curPlaylist = [playlists objectAtIndex:i];
}
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];
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];