#import "PreferencesController.h"
-#import "MainController.h"
+#import "NewMainController.h"
#import "HotKeyCenter.h"
#import <ITKit/ITWindowPositioning.h>
}
if ( rebuildRequired ) {
- [controller rebuildMenu];
+ //[controller rebuildMenu];
// redraw song info status window, or upcoming songs here
}
@"Playlists",
@"Song Rating",
@"<separator>",
- @"PreferencesÉ",
+ @"Preferences",
@"Quit",
@"<separator>",
@"Current Track Info",
NSString *string = [combo userDisplayRep];
NSEnumerator *enumerator = [hotKeysDictionary keyEnumerator];
NSString *enumKey;
- BOOL duplicateCombo = NO;
if (string == nil) {
string = @"";
if (![enumKey isEqualToString:currentHotKey]) {
if (![combo isEqual:[KeyCombo clearKeyCombo]] &&
[combo isEqual:[hotKeysDictionary objectForKey:enumKey]]) {
- //Ask if we want to clear duplicate key and set this one
[window setLevel:NSNormalWindowLevel];
- NSLog(@"Duplicate Combo! Ask what to do!");
+ if ( NSRunAlertPanel(@"Duplicate Key Combo", @"The specified key combo is already in use...", @"Replace", @"Cancel", nil) ) {
+ [hotKeysDictionary setObject:[KeyCombo clearKeyCombo] forKey:currentHotKey];
+ if ([enumKey isEqualToString:@"PlayPause"]) {
+ [playPauseButton setTitle:@""];
+ } else if ([enumKey isEqualToString:@"NextTrack"]) {
+ [nextTrackButton setTitle:@""];
+ } else if ([enumKey isEqualToString:@"PrevTrack"]) {
+ [previousTrackButton setTitle:@""];
+ } else if ([enumKey isEqualToString:@"ToggleVisualizer"]) {
+ [visualizerButton setTitle:@""];
+ } else if ([enumKey isEqualToString:@"TrackInfo"]) {
+ [trackInfoButton setTitle:@""];
+ } else if ([enumKey isEqualToString:@"UpcomingSongs"]) {
+ [upcomingSongsButton setTitle:@""];
+ } else if ([enumKey isEqualToString:@"IncrementVolume"]) {
+ [volumeIncrementButton setTitle:@""];
+ } else if ([enumKey isEqualToString:@"DecrementVolume"]) {
+ [volumeDecrementButton setTitle:@""];
+ } else if ([enumKey isEqualToString:@"IncrementRating"]) {
+ [ratingIncrementButton setTitle:@""];
+ } else if ([enumKey isEqualToString:@"DecrementRating"]) {
+ [ratingDecrementButton setTitle:@""];
+ } else if ([enumKey isEqualToString:@"ToggleShuffle"]) {
+ [toggleShuffleButton setTitle:@""];
+ } else if ([enumKey isEqualToString:@"ToggleLoop"]) {
+ [toggleLoopButton setTitle:@""];
+ }
+ [df setKeyCombo:[KeyCombo clearKeyCombo] forKey:enumKey];
+ } else {
+ return;
+ }
[window setLevel:NSStatusWindowLevel];
- duplicateCombo = YES;
}
}
}
- if (!duplicateCombo) {
- [hotKeysDictionary setObject:combo 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:@"ToggleVisualizer"]) {
- [visualizerButton 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];
- }
-
- [df setKeyCombo:combo forKey:currentHotKey];
- //[controller rebuildMenu];
+ [hotKeysDictionary setObject:combo forKey:currentHotKey];
+ [df setKeyCombo:combo forKey:currentHotKey];
+
+ if ([currentHotKey isEqualToString:@"PlayPause"]) {
+ [playPauseButton setTitle:string];
+ [[HotKeyCenter sharedCenter] addHotKey:@"PlayPause" combo:combo target:[MainController sharedController] action:@selector(playPause)];
+ } else if ([currentHotKey isEqualToString:@"NextTrack"]) {
+ [nextTrackButton setTitle:string];
+ [[HotKeyCenter sharedCenter] addHotKey:@"NextTrack" combo:combo target:[MainController sharedController] action:@selector(nextSong)];
+ } else if ([currentHotKey isEqualToString:@"PrevTrack"]) {
+ [previousTrackButton setTitle:string];
+ [[HotKeyCenter sharedCenter] addHotKey:@"PrevTrack" combo:combo target:[MainController sharedController] action:@selector(prevSong)];
+ } else if ([currentHotKey isEqualToString:@"ToggleVisualizer"]) {
+ [visualizerButton setTitle:string];
+ //[[HotKeyCenter sharedCenter] addHotKey:@"ToggleVisualizer" combo:combo target:[MainController sharedController] selector:@selector(NULL)];
+ } else if ([currentHotKey isEqualToString:@"TrackInfo"]) {
+ [trackInfoButton setTitle:string];
+ [[HotKeyCenter sharedCenter] addHotKey:@"TrackInfo" combo:combo target:[MainController sharedController] action:@selector(showCurrentTrackInfo)];
+ } else if ([currentHotKey isEqualToString:@"UpcomingSongs"]) {
+ [upcomingSongsButton setTitle:string];
+ [[HotKeyCenter sharedCenter] addHotKey:@"UpcomingSongs" combo:combo target:[MainController sharedController] action:@selector(showUpcomingSongs)];
+ } else if ([currentHotKey isEqualToString:@"IncrementVolume"]) {
+ [volumeIncrementButton setTitle:string];
+ [[HotKeyCenter sharedCenter] addHotKey:@"IncrementVolume" combo:combo target:[MainController sharedController] action:@selector(incrementVolume)];
+ } else if ([currentHotKey isEqualToString:@"DecrementVolume"]) {
+ [volumeDecrementButton setTitle:string];
+ [[HotKeyCenter sharedCenter] addHotKey:@"DecrementVolume" combo:combo target:[MainController sharedController] action:@selector(decrementVolume)];
+ } else if ([currentHotKey isEqualToString:@"IncrementRating"]) {
+ [ratingIncrementButton setTitle:string];
+ [[HotKeyCenter sharedCenter] addHotKey:@"IncrementRating" combo:combo target:[MainController sharedController] action:@selector(incrementRating)];
+ } else if ([currentHotKey isEqualToString:@"DecrementRating"]) {
+ [ratingDecrementButton setTitle:string];
+ [[HotKeyCenter sharedCenter] addHotKey:@"DecrementRating" combo:combo target:[MainController sharedController] action:@selector(decrementRating)];
+ } else if ([currentHotKey isEqualToString:@"ToggleShuffle"]) {
+ [toggleShuffleButton setTitle:string];
+ [[HotKeyCenter sharedCenter] addHotKey:@"ToggleShuffle" combo:combo target:[MainController sharedController] action:@selector(toggleShuffle)];
+ } else if ([currentHotKey isEqualToString:@"ToggleLoop"]) {
+ [toggleLoopButton setTitle:string];
+ [[HotKeyCenter sharedCenter] addHotKey:@"ToggleLoop" combo:combo target:[MainController sharedController] action:@selector(toggleLoop)];
}
-
[self cancelHotKey:sender];
}
{
[df setObject:myItems forKey:@"menu"];
[df synchronize];
- [controller rebuildMenu];
}
- (void)setLaunchesAtLogin:(BOOL)flag
if ([[[info draggingPasteboard] types] containsObject:@"MenuTableViewPboardType"]) {
NSString *item = [myItems objectAtIndex:[[[info draggingPasteboard] stringForType:@"MenuTableViewPboardType"] intValue]];
- if ([item isEqualToString:@"PreferencesÉ"] || [item isEqualToString:@"Quit"]) {
+ if ([item isEqualToString:@"Preferences"] || [item isEqualToString:@"Quit"]) {
return NSDragOperationNone;
}
}