#import "PreferencesController.h"
#import "MainController.h"
+#import "MenuController.h"
#import "NetworkController.h"
#import "NetworkObject.h"
#import "StatusWindow.h"
#import <netinet/in.h>
#import <arpa/inet.h>
#import <openssl/sha.h>
+#import <sys/types.h>
+#import <sys/stat.h>
#import <ITFoundation/ITFoundation.h>
[passwordPanelOKButton setTitle:@"Connect"];
[passwordPanelTitle setStringValue:@"Password Required"];
[passwordPanelMessage setStringValue:[NSString stringWithFormat:@"Please enter a password for access to the MenuTunes player named %@ at %@.", [[[NetworkController sharedController] networkObject] serverName], [[NetworkController sharedController] remoteHost]]];
- [passwordPanel center];
[passwordPanel setLevel:NSStatusWindowLevel];
- [passwordPanel makeKeyAndOrderFront:nil];
+ [NSApp activateIgnoringOtherApps:YES];
+ [passwordPanel center];
+ [passwordPanel orderFrontRegardless];
+ [passwordPanel makeKeyWindow];
if ([NSApp runModalForWindow:passwordPanel]) {
return YES;
} else {
[passwordPanelOKButton setTitle:@"Retry"];
[passwordPanelTitle setStringValue:@"Invalid Password"];
[passwordPanelMessage setStringValue:[NSString stringWithFormat:@"The password entered for access to the MenuTunes player named %@ at %@ is invalid. Please provide a new password.", [[[NetworkController sharedController] networkObject] serverName], [[NetworkController sharedController] remoteHost]]];
- [passwordPanel center];
[passwordPanel setLevel:NSStatusWindowLevel];
- [passwordPanel makeKeyAndOrderFront:nil];
+ [NSApp activateIgnoringOtherApps:YES];
+ [passwordPanel center];
+ [passwordPanel orderFrontRegardless];
+ [passwordPanel makeKeyWindow];
if ([NSApp runModalForWindow:passwordPanel]) {
return YES;
} else {
}
[self resetRemotePlayerTextFields];
- [window center];
+ [launchAtLoginCheckbox becomeFirstResponder];
[NSApp activateIgnoringOtherApps:YES];
- [window performSelector:@selector(makeKeyAndOrderFront:) withObject:self afterDelay:0.0];
-}
-
-- (IBAction)showTestWindow:(id)sender
-{
- [controller showTestWindow];
+ [window center];
+ [window orderFrontRegardless];
+ [window makeKeyWindow];
}
- (IBAction)changeGeneralSetting:(id)sender
[df setBool:SENDER_STATE forKey:@"LaunchPlayerWithMT"];
} else if ( [sender tag] == 1030) {
[df setInteger:[sender intValue] forKey:@"SongsInAdvance"];
-
+ [[controller menuController] rebuildSubmenus];
} 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"];
} else if ( [sender tag] == 1050) {
[df setBool:SENDER_STATE forKey:@"showArtist"];
+ } else if ( [sender tag] == 1055) {
+ [df setBool:SENDER_STATE forKey:@"showComposer"];
} else if ( [sender tag] == 1060) {
[df setBool:SENDER_STATE forKey:@"showAlbum"];
} else if ( [sender tag] == 1070) {
[df setBool:SENDER_STATE forKey:@"showTrackNumber"];
} else if ( [sender tag] == 1090) {
[df setBool:SENDER_STATE forKey:@"showTrackRating"];
+ } else if ( [sender tag] == 1100) {
+ [df setBool:SENDER_STATE forKey:@"showAlbumArtwork"];
+ } else if ( [sender tag] == 1110) {
+ [df setBool:SENDER_STATE forKey:@"runScripts"];
+ if (SENDER_STATE) {
+ [runScriptsCheckbox setState:NSOnState];
+ [showScriptsButton setEnabled:YES];
+ } else {
+ [showScriptsButton setEnabled:NO];
+ }
+ } else if ( [sender tag] == 1120) {
+ mkdir([[NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/MenuTunes/Scripts"] cString], 0744);
+ [[NSWorkspace sharedWorkspace] openFile:[NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/MenuTunes/Scripts"]];
}
[df synchronize];
}
} else if ( [sender tag] == 2030) {
[self setStatusWindowEntryEffect:[[sender selectedItem] representedObject]];
+ [(MainController *)controller showCurrentTrackInfo];
} else if ( [sender tag] == 2040) {
[self setStatusWindowExitEffect:[[sender selectedItem] representedObject]];
+ [(MainController *)controller showCurrentTrackInfo];
} else if ( [sender tag] == 2050) {
float newTime = ( -([sender floatValue]) );
}
[df setInteger:setting forKey:@"statusWindowBackgroundMode"];
+ [(MainController *)controller showCurrentTrackInfo];
} else if ( [sender tag] == 2091) {
[self setCustomColor:[sender color] updateWell:NO];
+ [(MainController *)controller showCurrentTrackInfo];
} else if ( [sender tag] == 2092) {
int selectedItem = [sender indexOfSelectedItem];
} else {
[self setCustomColor:[NSColor colorWithCalibratedWhite:0.15 alpha:0.70] updateWell:YES];
}
+ [(MainController *)controller showCurrentTrackInfo];
} else if ( [sender tag] == 2095) {
[df setInteger:[sender indexOfSelectedItem] forKey:@"statusWindowSizing"];
@"quit",
nil] forKey:@"menu"];
- [df setInteger:1200 forKey:@"appVersion"];
+ [df setInteger:MT_CURRENT_VERSION forKey:@"appVersion"];
[df setInteger:5 forKey:@"SongsInAdvance"];
// [df setBool:YES forKey:@"showName"]; // Song info will always show song title.
[df setBool:YES forKey:@"showArtist"];
+ [df setBool:YES forKey:@"showAlbumArtwork"];
[df setBool:NO forKey:@"showAlbum"];
+ [df setBool:NO forKey:@"showComposer"];
[df setBool:NO forKey:@"showTime"];
+ [df setBool:NO forKey:@"showToolTip"];
[df setObject:@"ITCutWindowEffect" forKey:@"statusWindowAppearanceEffect"];
[df setObject:@"ITDissolveWindowEffect" forKey:@"statusWindowVanishEffect"];
int selectedBGStyle;
id anItem;
+ [df setInteger:MT_CURRENT_VERSION forKey:@"appVersion"];
+
ITDebugLog(@"Setting up preferences UI.");
// Fill in the number of songs in advance to show field
[songsInAdvance setIntValue:[df integerForKey:@"SongsInAdvance"]];
[nameCheckbox setState:NSOnState]; // Song info will ALWAYS show song title.
[nameCheckbox setEnabled:NO]; // Song info will ALWAYS show song title.
[artistCheckbox setState:[df boolForKey:@"showArtist"] ? NSOnState : NSOffState];
+ [composerCheckbox setState:[df boolForKey:@"showComposer"] ? NSOnState : NSOffState];
[trackTimeCheckbox setState:[df boolForKey:@"showTime"] ? NSOnState : NSOffState];
[trackNumberCheckbox setState:[df boolForKey:@"showTrackNumber"] ? NSOnState : NSOffState];
[ratingCheckbox setState:[df boolForKey:@"showTrackRating"] ? NSOnState : NSOffState];
+ [albumArtworkCheckbox setState:[df boolForKey:@"showAlbumArtwork"] ? NSOnState : NSOffState];
+
+ if ([df boolForKey:@"runScripts"]) {
+ [runScriptsCheckbox setState:NSOnState];
+ [showScriptsButton setEnabled:YES];
+ } else {
+ [showScriptsButton setEnabled:NO];
+ }
// Set the launch at login checkbox state
ITDebugLog(@"Setting launch at login state.");
ITDebugLog(@"Synchronizing menus");
[df setObject:myItems forKey:@"menu"];
[df synchronize];
+
+ //If we're connected over a network, refresh the menu immediately
+ if ([[NetworkController sharedController] isConnectedToServer]) {
+ [controller timerUpdate];
+ }
}
- (void)setLaunchesAtLogin:(BOOL)flag