X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/5c68843e215011cab04f402cb4dc66bec3225081..c17d6e218e09277277fa3d0b267407e229b2ad15:/MainController.m?ds=sidebyside diff --git a/MainController.m b/MainController.m index 2ac5ac6..f9e23ed 100755 --- a/MainController.m +++ b/MainController.m @@ -55,9 +55,10 @@ static MainController *sharedController; SetITDebugMode(YES); } - if (![df stringForKey:@"appVersion"]) { + if (([df integerForKey:@"appVersion"] < 1200) && ([df integerForKey:@"SongsInAdvance"] > 0)) { [df removePersistentDomainForName:@"com.ithinksw.menutunes"]; - [df setObject:@"1.2" forKey:@"appVersion"]; + [df synchronize]; + [[PreferencesController sharedPrefs] registerDefaults]; [[StatusWindowController sharedController] showPreferencesUpdateWindow]; } @@ -91,10 +92,14 @@ static MainController *sharedController; [[PreferencesController sharedPrefs] registerDefaults]; } - [StatusItemHack install]; - statusItem = [[ITStatusItem alloc] - initWithStatusBar:[NSStatusBar systemStatusBar] - withLength:NSSquareStatusItemLength]; + if ([df boolForKey:@"ITMTNoStatusItem"]) { + statusItem = nil; + } else { + [StatusItemHack install]; + statusItem = [[ITStatusItem alloc] + initWithStatusBar:[NSStatusBar systemStatusBar] + withLength:NSSquareStatusItemLength]; + } bling = [[MTBlingController alloc] init]; [self blingTime]; @@ -300,6 +305,21 @@ static MainController *sharedController; if ( [self songChanged] && (timerUpdating != YES) && (playerRunningState == ITMTRemotePlayerRunning) ) { ITDebugLog(@"The song changed."); + + if ([df boolForKey:@"runScripts"] && [[self currentRemote] currentSongTitle]) { + NSArray *scripts = [[NSFileManager defaultManager] directoryContentsAtPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/MenuTunes/Scripts"]]; + NSEnumerator *scriptsEnum = [scripts objectEnumerator]; + NSString *nextScript; + while ( (nextScript = [scriptsEnum nextObject]) ) { + NSDictionary *error; + NSAppleScript *currentScript = [[NSAppleScript alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/MenuTunes/Scripts"] stringByAppendingPathComponent:nextScript]] error:&error]; + if (!currentScript || ![currentScript executeAndReturnError:nil]) { + ITDebugLog(@"Error running script %@.", nextScript); + } + [currentScript release]; + } + } + timerUpdating = YES; NS_DURING @@ -678,6 +698,7 @@ static MainController *sharedController; NSString *artist = nil; NSString *time = nil; NSString *track = nil; + NSImage *art = nil; int rating = -1; NS_DURING @@ -749,6 +770,14 @@ static MainController *sharedController; } } + if ( [df boolForKey:@"showAlbumArtwork"] ) { + NS_DURING + art = [[self currentRemote] currentSongAlbumArt]; + NS_HANDLER + [self networkError:localException]; + NS_ENDHANDLER + } + } else { title = NSLocalizedString(@"noSongPlaying", @"No song is playing."); } @@ -759,7 +788,8 @@ static MainController *sharedController; artist:artist time:time track:track - rating:rating]; + rating:rating + image:art]; } - (void)showUpcomingSongs