From: Matthew Judy Date: Wed, 9 Apr 2003 21:50:32 +0000 (+0000) Subject: Changes for prefs stuff and random tweaks too X-Git-Tag: v1.0~157 X-Git-Url: http://git.ithinksw.org/MenuTunes.git/commitdiff_plain/ef4f5a3e753596396e93ba33b7e2ab5e8b53c5d8 Changes for prefs stuff and random tweaks too --- diff --git a/English.lproj/Preferences.nib/info.nib b/English.lproj/Preferences.nib/info.nib index 3d6dc3c..7043aee 100755 --- a/English.lproj/Preferences.nib/info.nib +++ b/English.lproj/Preferences.nib/info.nib @@ -3,9 +3,9 @@ IBDocumentLocation - 390 31 356 240 0 0 1152 746 + 343 32 356 240 0 0 1056 770 IBFramework Version - 291.0 + 286.0 IBGroupedObjects 0 @@ -20,10 +20,6 @@ 281 - IBOpenObjects - - 6 - IBSystem Version 6I32 diff --git a/English.lproj/Preferences.nib/keyedobjects.nib b/English.lproj/Preferences.nib/keyedobjects.nib index 4e23c97..109f0fe 100755 Binary files a/English.lproj/Preferences.nib/keyedobjects.nib and b/English.lproj/Preferences.nib/keyedobjects.nib differ diff --git a/OldMainController.h b/OldMainController.h index c4d140b..e8901bf 100755 --- a/OldMainController.h +++ b/OldMainController.h @@ -58,7 +58,6 @@ NSMenuItem *playPauseItem; //Toggle between 'Play' and 'Pause' - PreferencesController *prefsController; StatusWindow *statusWindow; //Shows track info and upcoming songs. } diff --git a/OldMainController.m b/OldMainController.m index 7dc107d..aec922d 100755 --- a/OldMainController.m +++ b/OldMainController.m @@ -728,10 +728,8 @@ - (void)showPreferences:(id)sender { - if (!prefsController) { - prefsController = [[PreferencesController alloc] initWithMenuTunes:self]; - [self clearHotKeys]; - } + [[PreferencesController sharedPrefs] setController:self]; + [[PreferencesController sharedPrefs] showPrefsWindow:self]; } - (void)closePreferences @@ -739,8 +737,6 @@ if ( ( isAppRunning == ITMTRemotePlayerRunning) ) { [self setupHotKeys]; } - [prefsController release]; - prefsController = nil; } diff --git a/PreferencesController.h b/PreferencesController.h index 6fc8456..88380e0 100755 --- a/PreferencesController.h +++ b/PreferencesController.h @@ -18,32 +18,45 @@ @interface PreferencesController : NSObject { - IBOutlet NSButton *albumCheckbox; + IBOutlet NSButton *albumCheckbox; IBOutlet NSTableView *allTableView; - IBOutlet NSButton *artistCheckbox; + IBOutlet NSButton *artistCheckbox; IBOutlet NSTextField *keyComboField; - IBOutlet NSPanel *keyComboPanel; - IBOutlet NSButton *launchAtLoginCheckbox; + IBOutlet NSPanel *keyComboPanel; + IBOutlet NSButton *launchAtLoginCheckbox; IBOutlet NSTableView *menuTableView; - IBOutlet NSButton *nameCheckbox; - IBOutlet NSButton *nextTrackButton; - IBOutlet NSButton *playPauseButton; - IBOutlet NSButton *previousTrackButton; + IBOutlet NSButton *nameCheckbox; + IBOutlet NSButton *nextTrackButton; + IBOutlet NSButton *playPauseButton; + IBOutlet NSButton *previousTrackButton; IBOutlet NSTextField *songsInAdvance; - IBOutlet NSButton *trackInfoButton; - IBOutlet NSButton *trackTimeCheckbox; - IBOutlet NSButton *upcomingSongsButton; - IBOutlet NSWindow *window; + IBOutlet NSButton *trackInfoButton; + IBOutlet NSButton *trackTimeCheckbox; + IBOutlet NSButton *upcomingSongsButton; + IBOutlet NSWindow *window; - MainController *mt; - NSMutableArray *availableItems, *myItems; - NSArray *submenuItems; + MainController *controller; + NSUserDefaults *df; + NSMutableArray *availableItems; + NSMutableArray *myItems; + NSArray *submenuItems; + + KeyCombo *combo; + KeyCombo *playPauseCombo; + KeyCombo *nextTrackCombo; + KeyCombo *prevTrackCombo; + KeyCombo *trackInfoCombo; + KeyCombo *upcomingSongsCombo; - KeyCombo *combo, *playPauseCombo, *nextTrackCombo, - *prevTrackCombo, *trackInfoCombo, *upcomingSongsCombo; NSString *setHotKey; } -- (id)initWithMenuTunes:(MainController *)menutunes; + ++ (PreferencesController *)sharedPrefs; + +- (id)controller; +- (void)setController:(id)object; + +- (IBAction)showPrefsWindow:(id)sender; - (IBAction)apply:(id)sender; - (IBAction)cancel:(id)sender; diff --git a/PreferencesController.m b/PreferencesController.m index 89a0268..2206fab 100755 --- a/PreferencesController.m +++ b/PreferencesController.m @@ -2,153 +2,110 @@ #import "MainController.h" #import "HotKeyCenter.h" +/*************************************************************************/ +#pragma mark - +#pragma mark PRIVATE INTERFACE +/*************************************************************************/ + +@interface PreferencesController (Private) +- (void)setupWindow; +- (void)setupCustomizationTables; +- (void)setupMenuItems; +- (void)setupUI; +@end + + @implementation PreferencesController -- (id)initWithMenuTunes:(MainController *)tunes; + +/*************************************************************************/ +#pragma mark - +#pragma mark STATIC VARIABLES +/*************************************************************************/ + +static PreferencesController *prefs = nil; + + +/*************************************************************************/ +#pragma mark - +#pragma mark INITIALIZATION METHODS +/*************************************************************************/ + ++ (PreferencesController *)sharedPrefs; +{ + if (! prefs) { + prefs = [[self alloc] init]; + } + return prefs; +} + +- (id)init { if ( (self = [super init]) ) { - int i; - NSImageCell *imgCell = [[[NSImageCell alloc] init] autorelease]; - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - - mt = [tunes retain]; - [mt registerDefaults]; - - [NSBundle loadNibNamed:@"Preferences" owner:self]; //Load the nib - - //Set the table view cells up - [imgCell setImageScaling:NSScaleNone]; - [[menuTableView tableColumnWithIdentifier:@"submenu"] setDataCell:imgCell]; - [[allTableView tableColumnWithIdentifier:@"submenu"] setDataCell:imgCell]; - - //Register for drag and drop - [menuTableView registerForDraggedTypes:[NSArray arrayWithObjects:@"MenuTableViewPboardType", @"AllTableViewPboardType", nil]]; - [allTableView registerForDraggedTypes:[NSArray arrayWithObjects:@"MenuTableViewPboardType", @"AllTableViewPboardType", nil]]; - - //Set the list of items you can have. - availableItems = [[NSMutableArray alloc] initWithObjects:@"Current Track Info", @"Upcoming Songs", @"Playlists", @"EQ Presets", @"Song Rating", @"Play/Pause", @"Next Track", @"Previous Track", @"Fast Forward", @"Rewind", @"", nil]; - - //Get our preferred menu - myItems = [[[NSUserDefaults standardUserDefaults] arrayForKey:@"menu"] mutableCopy]; - - //Delete items in the availableItems array that are already part of the menu - for (i = 0; i < [myItems count]; i++) { - NSString *item = [myItems objectAtIndex:i]; - if (![item isEqualToString:@""]) - { - [availableItems removeObject:item]; - } - } - - //Items that show should a submenu image - submenuItems = [[NSArray alloc] initWithObjects:@"Upcoming Songs", @"Playlists", @"EQ Presets", @"Song Rating", nil]; - - //Fill in the number of songs in advance to show field - [songsInAdvance setIntValue:[defaults integerForKey:@"SongsInAdvance"]]; - - //Fill in hot key buttons - if ([defaults objectForKey:@"PlayPause"]){ - playPauseCombo = [defaults keyComboForKey:@"PlayPause"]; - [playPauseButton setTitle:[playPauseCombo userDisplayRep]]; - } else { - playPauseCombo = [[KeyCombo alloc] init]; - } - - if ([defaults objectForKey:@"NextTrack"]) { - nextTrackCombo = [defaults keyComboForKey:@"NextTrack"]; - [nextTrackButton setTitle:[nextTrackCombo userDisplayRep]]; - } else { - nextTrackCombo = [[KeyCombo alloc] init]; - } - - if ([defaults objectForKey:@"PrevTrack"]) { - prevTrackCombo = [defaults keyComboForKey:@"PrevTrack"]; - [previousTrackButton setTitle:[prevTrackCombo userDisplayRep]]; - } else { - prevTrackCombo = [[KeyCombo alloc] init]; - } - - if ([defaults objectForKey:@"TrackInfo"]) { - trackInfoCombo = [defaults keyComboForKey:@"TrackInfo"]; - [trackInfoButton setTitle:[trackInfoCombo userDisplayRep]]; - } else { - trackInfoCombo = [[KeyCombo alloc] init]; - } - - if ([defaults objectForKey:@"UpcomingSongs"]) { - upcomingSongsCombo = [defaults keyComboForKey:@"UpcomingSongs"]; - [upcomingSongsButton setTitle:[upcomingSongsCombo userDisplayRep]]; - } else { - upcomingSongsCombo = [[KeyCombo alloc] init]; - } - - //Check current track info buttons - [albumCheckbox setState:[defaults boolForKey:@"showAlbum"] ? NSOnState : NSOffState]; - [nameCheckbox setState:[defaults boolForKey:@"showName"] ? NSOnState : NSOffState]; - [artistCheckbox setState:[defaults boolForKey:@"showArtist"] ? NSOnState : NSOffState]; - [trackTimeCheckbox setState:[defaults boolForKey:@"showTime"] ? NSOnState : NSOffState]; - - //Set the launch at login checkbox state - { - NSMutableDictionary *loginwindow; - NSMutableArray *loginarray; - int i; - - [defaults synchronize]; - loginwindow = [[defaults persistentDomainForName:@"loginwindow"] mutableCopy]; - loginarray = [loginwindow objectForKey:@"AutoLaunchedApplicationDictionary"]; - - for (i = 0; i < [loginarray count]; i++) { - NSDictionary *tempDict = [loginarray objectAtIndex:i]; - if ([[[tempDict objectForKey:@"Path"] lastPathComponent] isEqualToString:[[[NSBundle mainBundle] bundlePath] lastPathComponent]]) { - [launchAtLoginCheckbox setState:NSOnState]; - } - } - } - - //Show our window - [window setLevel:NSStatusWindowLevel]; - [window center]; - [window makeKeyAndOrderFront:nil]; - [window setDelegate:self]; + df = [[NSUserDefaults standardUserDefaults] retain]; + controller = nil; } return self; } -- (void)dealloc + +/*************************************************************************/ +#pragma mark - +#pragma mark ACCESSOR METHODS +/*************************************************************************/ + +- (id)controller { - [self setKeyCombo:nil]; - [playPauseCombo release]; - [nextTrackCombo release]; - [prevTrackCombo release]; - [trackInfoCombo release]; - [upcomingSongsCombo release]; - [keyComboPanel release]; - [menuTableView setDataSource:nil]; - [allTableView setDataSource:nil]; - [mt release]; - [availableItems release]; - [submenuItems release]; - [myItems release]; + return controller; +} + +- (void)setController:(id)object +{ +NSLog(@"foo"); + [controller autorelease]; + controller = [object retain]; +NSLog(@"bar"); +} + + +/*************************************************************************/ +#pragma mark - +#pragma mark INSTANCE METHODS +/*************************************************************************/ + + +- (IBAction)showPrefsWindow:(id)sender +{ + if (! window) { // If window does not exist yet, then the nib hasn't been loaded. + [self setupWindow]; // Load in the nib, and perform any initial setup. + [self setupCustomizationTables]; // Setup the DnD manu config tables. + [self setupMenuItems]; // Setup the arrays of menu items + [self setupUI]; // Sets up additional UI + [window setDelegate:self]; + } + + [window setLevel:NSStatusWindowLevel]; + [window center]; + [window makeKeyAndOrderFront:self]; + [NSApp activateIgnoringOtherApps:YES]; } - (IBAction)apply:(id)sender { - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - [defaults setObject:myItems forKey:@"menu"]; + [df setObject:myItems forKey:@"menu"]; //Set key combos - [defaults setKeyCombo:playPauseCombo forKey:@"PlayPause"]; - [defaults setKeyCombo:nextTrackCombo forKey:@"NextTrack"]; - [defaults setKeyCombo:prevTrackCombo forKey:@"PrevTrack"]; - [defaults setKeyCombo:trackInfoCombo forKey:@"TrackInfo"]; - [defaults setKeyCombo:upcomingSongsCombo forKey:@"UpcomingSongs"]; + [df setKeyCombo:playPauseCombo forKey:@"PlayPause"]; + [df setKeyCombo:nextTrackCombo forKey:@"NextTrack"]; + [df setKeyCombo:prevTrackCombo forKey:@"PrevTrack"]; + [df setKeyCombo:trackInfoCombo forKey:@"TrackInfo"]; + [df setKeyCombo:upcomingSongsCombo forKey:@"UpcomingSongs"]; //Set info checkboxes - [defaults setBool:[albumCheckbox state] forKey:@"showAlbum"]; - [defaults setBool:[nameCheckbox state] forKey:@"showName"]; - [defaults setBool:[artistCheckbox state] forKey:@"showArtist"]; - [defaults setBool:[trackTimeCheckbox state] forKey:@"showTime"]; + [df setBool:[albumCheckbox state] forKey:@"showAlbum"]; + [df setBool:[nameCheckbox state] forKey:@"showName"]; + [df setBool:[artistCheckbox state] forKey:@"showArtist"]; + [df setBool:[trackTimeCheckbox state] forKey:@"showTime"]; //Here we set whether we will launch at login by modifying loginwindow.plist if ([launchAtLoginCheckbox state] == NSOnState) { @@ -158,8 +115,8 @@ int i; BOOL skip = NO; - [defaults synchronize]; - loginwindow = [[defaults persistentDomainForName:@"loginwindow"] mutableCopy]; + [df synchronize]; + loginwindow = [[df persistentDomainForName:@"loginwindow"] mutableCopy]; loginarray = [loginwindow objectForKey:@"AutoLaunchedApplicationDictionary"]; for (i = 0; i < [loginarray count]; i++) { @@ -187,16 +144,16 @@ NSMutableArray *loginarray; int i; - [[NSUserDefaults standardUserDefaults] synchronize]; - loginwindow = [[[NSUserDefaults standardUserDefaults] persistentDomainForName:@"loginwindow"] mutableCopy]; + [df synchronize]; + loginwindow = [[df persistentDomainForName:@"loginwindow"] mutableCopy]; loginarray = [loginwindow objectForKey:@"AutoLaunchedApplicationDictionary"]; for (i = 0; i < [loginarray count]; i++) { NSDictionary *tempDict = [loginarray objectAtIndex:i]; if ([[[tempDict objectForKey:@"Path"] lastPathComponent] isEqualToString:[[[NSBundle mainBundle] bundlePath] lastPathComponent]]) { [loginarray removeObjectAtIndex:i]; - [defaults setPersistentDomain:loginwindow forName:@"loginwindow"]; - [defaults synchronize]; + [df setPersistentDomain:loginwindow forName:@"loginwindow"]; + [df synchronize]; break; } } @@ -204,9 +161,9 @@ //Set songs in advance if ([songsInAdvance intValue]) { - [defaults setInteger:[songsInAdvance intValue] forKey:@"SongsInAdvance"]; + [df setInteger:[songsInAdvance intValue] forKey:@"SongsInAdvance"]; } else { - [defaults setInteger:5 forKey:@"SongsInAdvance"]; + [df setInteger:5 forKey:@"SongsInAdvance"]; } /*{ @@ -216,17 +173,17 @@ for (i = 0; i < [apps count]; i++) { if ([[[apps objectAtIndex:i] objectForKey:@"NSApplicationName"] isEqualToString:@"iTunes"]) { - [mt rebuildMenu]; + [controller rebuildMenu]; } } }*/ - [mt clearHotKeys]; + [controller clearHotKeys]; } - (IBAction)cancel:(id)sender { [window close]; - [mt closePreferences]; + [controller closePreferences]; } - (IBAction)cancelHotKey:(id)sender @@ -260,9 +217,7 @@ } playPauseCombo = [combo copy]; [playPauseButton setTitle:string]; - } - else if ([setHotKey isEqualToString:@"NextTrack"]) - { + } else if ([setHotKey isEqualToString:@"NextTrack"]) { if (([combo isEqual:playPauseCombo] || [combo isEqual:prevTrackCombo] || [combo isEqual:trackInfoCombo] || [combo isEqual:upcomingSongsCombo]) && !(([combo modifiers] == -1) && ([combo keyCode] == -1))) { @@ -274,9 +229,7 @@ } nextTrackCombo = [combo copy]; [nextTrackButton setTitle:string]; - } - else if ([setHotKey isEqualToString:@"PrevTrack"]) - { + } else if ([setHotKey isEqualToString:@"PrevTrack"]) { if (([combo isEqual:nextTrackCombo] || [combo isEqual:playPauseCombo] || [combo isEqual:trackInfoCombo] || [combo isEqual:upcomingSongsCombo]) && !(([combo modifiers] == -1) && ([combo keyCode] == -1))) { @@ -288,9 +241,7 @@ } prevTrackCombo = [combo copy]; [previousTrackButton setTitle:string]; - } - else if ([setHotKey isEqualToString:@"TrackInfo"]) - { + } else if ([setHotKey isEqualToString:@"TrackInfo"]) { if (([combo isEqual:nextTrackCombo] || [combo isEqual:prevTrackCombo] || [combo isEqual:playPauseCombo] || [combo isEqual:upcomingSongsCombo]) && !(([combo modifiers] == -1) && ([combo keyCode] == -1))) { @@ -302,9 +253,7 @@ } trackInfoCombo = [combo copy]; [trackInfoButton setTitle:string]; - } - else if ([setHotKey isEqualToString:@"UpcomingSongs"]) - { + } else if ([setHotKey isEqualToString:@"UpcomingSongs"]) { if (([combo isEqual:nextTrackCombo] || [combo isEqual:prevTrackCombo] || [combo isEqual:trackInfoCombo] || [combo isEqual:playPauseCombo]) && !(([combo modifiers] == -1) && ([combo keyCode] == -1))) { @@ -324,7 +273,7 @@ { [self apply:nil]; [window close]; - [mt closePreferences]; + [controller closePreferences]; } - (IBAction)setCurrentTrackInfo:(id)sender @@ -391,19 +340,161 @@ [keyComboField setStringValue:string]; } -// -// + +/*************************************************************************/ +#pragma mark - +#pragma mark PRIVATE METHOD IMPLEMENTATIONS +/*************************************************************************/ + +- (void)setupWindow +{ + if ( ! [NSBundle loadNibNamed:@"Preferences" owner:self] ) { + NSLog( @"Failed to load Preferences.nib" ); + NSBeep(); + return; + } +} + +- (void)setupCustomizationTables +{ + NSImageCell *imgCell = [[[NSImageCell alloc] initImageCell:nil] autorelease]; + + // Set the table view cells up + [imgCell setImageScaling:NSScaleNone]; + [[menuTableView tableColumnWithIdentifier:@"submenu"] setDataCell:imgCell]; + [[allTableView tableColumnWithIdentifier:@"submenu"] setDataCell:imgCell]; + + // Register for drag and drop + [menuTableView registerForDraggedTypes:[NSArray arrayWithObjects: + @"MenuTableViewPboardType", + @"AllTableViewPboardType", + nil]]; + [allTableView registerForDraggedTypes:[NSArray arrayWithObjects: + @"MenuTableViewPboardType", + @"AllTableViewPboardType", + nil]]; +} + +- (void)setupMenuItems +{ + NSEnumerator *itemEnum; + id anItem; + // Set the list of items you can have. + availableItems = [[NSMutableArray alloc] initWithObjects: + @"Current Track Info", + @"Upcoming Songs", + @"Playlists", + @"EQ Presets", + @"Song Rating", + @"Play/Pause", + @"Next Track", + @"Previous Track", + @"Fast Forward", + @"Rewind", + @"", + nil]; + + // Get our preferred menu + myItems = [[df arrayForKey:@"menu"] mutableCopy]; + + // Delete items in the availableItems array that are already part of the menu + itemEnum = [myItems objectEnumerator]; + while ( (anItem = [itemEnum nextObject]) ) { + if ( ! [anItem isEqualToString:@""] ) { + [availableItems removeObject:anItem]; + } + } + + // Items that show should a submenu image + submenuItems = [[NSArray alloc] initWithObjects: + @"Upcoming Songs", + @"Playlists", + @"EQ Presets", + @"Song Rating", + nil]; +} + +- (void)setupUI +{ + NSMutableDictionary *loginwindow; + NSMutableArray *loginarray; + NSEnumerator *loginEnum; + id anItem; + + // Fill in the number of songs in advance to show field + [songsInAdvance setIntValue:[df integerForKey:@"SongsInAdvance"]]; + + // Fill in hot key buttons + if ([df objectForKey:@"PlayPause"]){ + playPauseCombo = [df keyComboForKey:@"PlayPause"]; + [playPauseButton setTitle:[playPauseCombo userDisplayRep]]; + } else { + playPauseCombo = [[KeyCombo alloc] init]; + } + + if ([df objectForKey:@"NextTrack"]) { + nextTrackCombo = [df keyComboForKey:@"NextTrack"]; + [nextTrackButton setTitle:[nextTrackCombo userDisplayRep]]; + } else { + nextTrackCombo = [[KeyCombo alloc] init]; + } + + if ([df objectForKey:@"PrevTrack"]) { + prevTrackCombo = [df keyComboForKey:@"PrevTrack"]; + [previousTrackButton setTitle:[prevTrackCombo userDisplayRep]]; + } else { + prevTrackCombo = [[KeyCombo alloc] init]; + } + + if ([df objectForKey:@"TrackInfo"]) { + trackInfoCombo = [df keyComboForKey:@"TrackInfo"]; + [trackInfoButton setTitle:[trackInfoCombo userDisplayRep]]; + } else { + trackInfoCombo = [[KeyCombo alloc] init]; + } + + if ([df objectForKey:@"UpcomingSongs"]) { + upcomingSongsCombo = [df keyComboForKey:@"UpcomingSongs"]; + [upcomingSongsButton setTitle:[upcomingSongsCombo userDisplayRep]]; + } else { + upcomingSongsCombo = [[KeyCombo alloc] init]; + } + + // Check current track info buttons + [albumCheckbox setState:[df boolForKey:@"showAlbum"] ? NSOnState : NSOffState]; + [nameCheckbox setState:[df boolForKey:@"showName"] ? NSOnState : NSOffState]; + [artistCheckbox setState:[df boolForKey:@"showArtist"] ? NSOnState : NSOffState]; + [trackTimeCheckbox setState:[df boolForKey:@"showTime"] ? NSOnState : NSOffState]; + + // Set the launch at login checkbox state + [df synchronize]; + loginwindow = [[df persistentDomainForName:@"loginwindow"] mutableCopy]; + loginarray = [loginwindow objectForKey:@"AutoLaunchedApplicationDictionary"]; + + loginEnum = [loginarray objectEnumerator]; + while ( (anItem = [loginEnum nextObject]) ) { + if ([[[anItem objectForKey:@"Path"] lastPathComponent] isEqualToString:[[[NSBundle mainBundle] bundlePath] lastPathComponent]]) { + [launchAtLoginCheckbox setState:NSOnState]; + } + } +} + + +/*************************************************************************/ +#pragma mark - +#pragma mark NSWindow DELEGATE METHODS +/*************************************************************************/ - (void)windowWillClose:(NSNotification *)note { - [mt closePreferences]; + [(MainController *)controller closePreferences]; } -// -// -// Table View Datasource Methods -// -// + +/*************************************************************************/ +#pragma mark - +#pragma mark NSTableView DATASOURCE METHODS +/*************************************************************************/ - (int)numberOfRowsInTableView:(NSTableView *)aTableView { @@ -523,4 +614,29 @@ return NSDragOperationGeneric; } + +/*************************************************************************/ +#pragma mark - +#pragma mark DEALLOCATION METHODS +/*************************************************************************/ + +- (void)dealloc +{ + [self setKeyCombo:nil]; + [playPauseCombo release]; + [nextTrackCombo release]; + [prevTrackCombo release]; + [trackInfoCombo release]; + [upcomingSongsCombo release]; + [keyComboPanel release]; + [menuTableView setDataSource:nil]; + [allTableView setDataSource:nil]; + [controller release]; + [availableItems release]; + [submenuItems release]; + [myItems release]; + [df release]; +} + + @end diff --git a/StatusWindow.m b/StatusWindow.m index ca12378..a2a223a 100755 --- a/StatusWindow.m +++ b/StatusWindow.m @@ -53,7 +53,7 @@ imageHeight = [image size].height; // Iterate over each line to get text width and height - while ( oneLine = [lineEnum nextObject] ) { + while ( (oneLine = [lineEnum nextObject]) ) { // Get the width of one line, adding 8.0 because Apple sucks donkey rectum. float oneLineWidth = ( [oneLine sizeWithAttributes:attr].width + 8.0 ); // Add the height of this line to the total text height diff --git a/iTunesRemote.m b/iTunesRemote.m index f796d95..0723d73 100755 --- a/iTunesRemote.m +++ b/iTunesRemote.m @@ -286,8 +286,8 @@ - (ITMTRemotePlayerRepeatMode)repeatMode { - FourCharCode m00f; - int result; + FourCharCode m00f = 0; + int result = 0; m00f = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pRpt" fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN]; @@ -309,7 +309,7 @@ - (BOOL)setRepeatMode:(ITMTRemotePlayerRepeatMode)repeatMode { - FourCharCode m00f; + FourCharCode m00f = 0; switch (repeatMode) { case ITMTRemotePlayerRepeatOff: