- NSString *string = [combo description];
- NSEnumerator *enumerator = [hotKeysDictionary keyEnumerator];
- NSString *enumKey;
-
- if (string == nil) {
- string = @"";
- }
-
- while ( (enumKey = [enumerator nextObject]) ) {
- if (![enumKey isEqualToString:currentHotKey]) {
- if (![combo isEqual:[ITKeyCombo clearKeyCombo]] &&
- [combo isEqual:[hotKeysDictionary objectForKey:enumKey]]) {
- [window setLevel:NSNormalWindowLevel];
- if ( NSRunAlertPanel(NSLocalizedString(@"duplicateCombo", @"Duplicate Key Combo") , NSLocalizedString(@"duplicateCombo_msg", @"The specified key combo is already in use..."), NSLocalizedString(@"replace", @"Replace"), NSLocalizedString(@"cancel", @"Cancel"), nil) ) {
- [hotKeysDictionary setObject:[ITKeyCombo clearKeyCombo] forKey:currentHotKey];
- if ([enumKey isEqualToString:@"PlayPause"]) {
- [playPauseButton setTitle:@"(None)"];
- } else if ([enumKey isEqualToString:@"NextTrack"]) {
- [nextTrackButton setTitle:@"(None)"];
- } else if ([enumKey isEqualToString:@"PrevTrack"]) {
- [previousTrackButton setTitle:@"(None)"];
- } else if ([enumKey isEqualToString:@"ShowPlayer"]) {
- [showPlayerButton setTitle:@"(None)"];
- } else if ([enumKey isEqualToString:@"TrackInfo"]) {
- [trackInfoButton setTitle:@"(None)"];
- } else if ([enumKey isEqualToString:@"UpcomingSongs"]) {
- [upcomingSongsButton setTitle:@"(None)"];
- } else if ([enumKey isEqualToString:@"IncrementVolume"]) {
- [volumeIncrementButton setTitle:@"(None)"];
- } else if ([enumKey isEqualToString:@"DecrementVolume"]) {
- [volumeDecrementButton setTitle:@"(None)"];
- } else if ([enumKey isEqualToString:@"IncrementRating"]) {
- [ratingIncrementButton setTitle:@"(None)"];
- } else if ([enumKey isEqualToString:@"DecrementRating"]) {
- [ratingDecrementButton setTitle:@"(None)"];
- } else if ([enumKey isEqualToString:@"ToggleShuffle"]) {
- [toggleShuffleButton setTitle:@"(None)"];
- } else if ([enumKey isEqualToString:@"ToggleLoop"]) {
- [toggleLoopButton setTitle:@"(None)"];
- }
- [df setObject:[[ITKeyCombo clearKeyCombo] plistRepresentation] forKey:enumKey];
- [hotKeysDictionary setObject:[ITKeyCombo clearKeyCombo] forKey:enumKey];
- } else {
- return;
- }
- [window setLevel:NSStatusWindowLevel];
- }
- }
- }
-
- [hotKeysDictionary setObject:combo forKey:currentHotKey];
- [df setObject:[combo plistRepresentation] forKey:currentHotKey];
-
- if ([currentHotKey isEqualToString:@"PlayPause"]) {
- [playPauseButton setTitle:string];
- } else if ([currentHotKey isEqualToString:@"NextTrack"]) {
- [nextTrackButton setTitle:string];
- } else if ([currentHotKey isEqualToString:@"PrevTrack"]) {
- [previousTrackButton setTitle:string];
- } else if ([currentHotKey isEqualToString:@"ShowPlayer"]) {
- [showPlayerButton setTitle:string];
- } else if ([currentHotKey isEqualToString:@"TrackInfo"]) {
- [trackInfoButton setTitle:string];
- } else if ([currentHotKey isEqualToString:@"UpcomingSongs"]) {
- [upcomingSongsButton setTitle:string];
- } else if ([currentHotKey isEqualToString:@"IncrementVolume"]) {
- [volumeIncrementButton setTitle:string];
- } else if ([currentHotKey isEqualToString:@"DecrementVolume"]) {
- [volumeDecrementButton setTitle:string];
- } else if ([currentHotKey isEqualToString:@"IncrementRating"]) {
- [ratingIncrementButton setTitle:string];
- } else if ([currentHotKey isEqualToString:@"DecrementRating"]) {
- [ratingDecrementButton setTitle:string];
- } else if ([currentHotKey isEqualToString:@"ToggleShuffle"]) {
- [toggleShuffleButton setTitle:string];
- } else if ([currentHotKey isEqualToString:@"ToggleLoop"]) {
- [toggleLoopButton setTitle:string];
- }
- [controller setupHotKeys];
- [self cancelHotKey:sender];