diff --git a/macosx/English.lproj/PrefsWindow.nib/info.nib b/macosx/English.lproj/PrefsWindow.nib/info.nib index a02deff48..86cf2349f 100644 --- a/macosx/English.lproj/PrefsWindow.nib/info.nib +++ b/macosx/English.lproj/PrefsWindow.nib/info.nib @@ -23,7 +23,7 @@ IBOpenObjects - 66 + 41 IBSystem Version 8R4031 diff --git a/macosx/English.lproj/PrefsWindow.nib/keyedobjects.nib b/macosx/English.lproj/PrefsWindow.nib/keyedobjects.nib index 3f3d10408..ff905ce66 100644 Binary files a/macosx/English.lproj/PrefsWindow.nib/keyedobjects.nib and b/macosx/English.lproj/PrefsWindow.nib/keyedobjects.nib differ diff --git a/macosx/PrefsController.h b/macosx/PrefsController.h index 9643ef520..725987b70 100644 --- a/macosx/PrefsController.h +++ b/macosx/PrefsController.h @@ -40,8 +40,6 @@ * fDownloadSoundPopUp, * fSeedingSoundPopUp; IBOutlet NSTextField * fRatioStopField, * fQueueDownloadField, * fQueueSeedField, * fStalledField; - NSArray * fSounds; - SUUpdater * fUpdater; IBOutlet NSTextField * fUploadField, * fDownloadField, @@ -58,8 +56,15 @@ - (id) initWithWindowNibName: (NSString *) name handle: (tr_handle_t *) handle; - (void) setUpdater: (SUUpdater *) updater; -- (void) setBadge: (id) sender; +- (void) setPort: (id) sender; +- (void) setNat: (id) sender; +- (void) updatePortStatus; +- (void) portCheckerDidFinishProbing: (PortChecker *) portChecker; + +- (NSArray *) sounds; - (void) setSound: (id) sender; + +- (void) setBadge: (id) sender; - (void) resetWarnings: (id) sender; - (void) setCheckForUpdate: (id) sender; @@ -73,11 +78,6 @@ - (void) folderSheetShow: (id) sender; - (void) incompleteFolderSheetShow: (id) sender; -- (void) setPort: (id) sender; -- (void) setNat: (id) sender; -- (void) updatePortStatus; -- (void) portCheckerDidFinishProbing: (PortChecker *) portChecker; - - (void) applyRatioSetting: (id) sender; - (void) updateRatioStopField; - (void) setRatioStop: (id) sender; diff --git a/macosx/PrefsController.m b/macosx/PrefsController.m index 69484feb0..b35f2e110 100644 --- a/macosx/PrefsController.m +++ b/macosx/PrefsController.m @@ -80,25 +80,8 @@ //actually set bandwidth limits [self applySpeedSettings: nil]; - - //set play sound - NSMutableArray * sounds = [NSMutableArray array]; - NSEnumerator * soundEnumerator; - - //get list of all sounds and sort alphabetically - if (soundEnumerator = [[NSFileManager defaultManager] enumeratorAtPath: @"System/Library/Sounds"]) - { - NSString * sound; - while ((sound = [soundEnumerator nextObject])) - { - sound = [sound stringByDeletingPathExtension]; - if ([NSSound soundNamed: sound]) - [sounds addObject: sound]; - } - } - - fSounds = [[sounds sortedArrayUsingSelector: @selector(caseInsensitiveCompare:)] retain]; } + return self; } @@ -106,7 +89,6 @@ { if (fNatStatusTimer) [fNatStatusTimer invalidate]; - [fSounds release]; [super dealloc]; } @@ -319,6 +301,41 @@ [portChecker release]; } +- (NSArray *) sounds +{ + NSMutableArray * sounds = [[NSMutableArray alloc] init]; + + NSArray * directories = [NSArray arrayWithObjects: @"/System/Library/Sounds", @"/Library/Sounds", + [NSHomeDirectory() stringByAppendingPathComponent: @"Library/Sounds"], nil]; + BOOL isDirectory; + NSEnumerator * soundEnumerator; + NSString * sound; + + NSString * directory; + NSEnumerator * enumerator = [directories objectEnumerator]; + while ((directory = [enumerator nextObject])) + if ([[NSFileManager defaultManager] fileExistsAtPath: directory isDirectory: &isDirectory] && isDirectory) + { + soundEnumerator = [[[NSFileManager defaultManager] directoryContentsAtPath: directory] objectEnumerator]; + while ((sound = [soundEnumerator nextObject])) + { + sound = [sound stringByDeletingPathExtension]; + if ([NSSound soundNamed: sound]) + [sounds addObject: sound]; + } + } + + return sounds; +} + +- (void) setSound: (id) sender +{ + //play sound when selecting + NSSound * sound; + if ((sound = [NSSound soundNamed: [sender titleOfSelectedItem]])) + [sound play]; +} + - (void) applySpeedSettings: (id) sender { if ([fDefaults boolForKey: @"SpeedLimit"]) @@ -422,14 +439,6 @@ [[NSNotificationCenter defaultCenter] postNotificationName: @"DockBadgeChange" object: self]; } -- (void) setSound: (id) sender -{ - //play sound when selecting - NSSound * sound; - if ((sound = [NSSound soundNamed: [sender titleOfSelectedItem]])) - [sound play]; -} - - (void) resetWarnings: (id) sender { [fDefaults setBool: YES forKey: @"WarningDebug"];