diff --git a/Playlist/PlaylistController.m b/Playlist/PlaylistController.m index 7fc72b89c..924334000 100644 --- a/Playlist/PlaylistController.m +++ b/Playlist/PlaylistController.m @@ -173,7 +173,7 @@ - (void)setSortDescriptors:(NSArray *)sortDescriptors { //Cheap hack so the index column isn't sorted - if (([sortDescriptors count] != 0) && [[[sortDescriptors objectAtIndex:0] key] caseInsensitiveCompare:@"displayIndex"] == NSOrderedSame) + if (([sortDescriptors count] != 0) && [[[sortDescriptors objectAtIndex:0] key] caseInsensitiveCompare:@"index"] == NSOrderedSame) { //Remove the sort descriptors [super setSortDescriptors:nil]; diff --git a/Playlist/PlaylistHeaderView.m b/Playlist/PlaylistHeaderView.m index d2c3b84fa..5313c2736 100644 --- a/Playlist/PlaylistHeaderView.m +++ b/Playlist/PlaylistHeaderView.m @@ -67,12 +67,4 @@ [super mouseDown: theEvent]; } --(NSMenu*)menuForEvent:(NSEvent*)event -{ - NSString *hi = @"This is a test"; - //Show a menu! - NSLog(@"MENU FOR HEADER!"); - - return nil; -} @end diff --git a/Playlist/PlaylistView.h b/Playlist/PlaylistView.h index d581908c3..9a1880181 100644 --- a/Playlist/PlaylistView.h +++ b/Playlist/PlaylistView.h @@ -14,9 +14,10 @@ #import "AMRemovableColumnsTableView.h" @interface PlaylistView : AMRemovableColumnsTableView { - IBOutlet PlaybackController *playbackController; IBOutlet PlaylistController *playlistController; + + NSMenu *headerContextMenu; } - (IBAction)sortByPath:(id)sender; diff --git a/Playlist/PlaylistView.m b/Playlist/PlaylistView.m index 601d3a966..778c585ef 100644 --- a/Playlist/PlaylistView.m +++ b/Playlist/PlaylistView.m @@ -44,6 +44,7 @@ [self setHeaderView:customTableHeaderView]; + //Set up formatters NSFormatter *secondsFormatter = [[SecondsFormatter alloc] init]; [[[self tableColumnWithIdentifier:@"length"] dataCell] setFormatter:secondsFormatter]; [secondsFormatter release]; @@ -51,8 +52,31 @@ NSFormatter *indexFormatter = [[IndexFormatter alloc] init]; [[[self tableColumnWithIdentifier:@"index"] dataCell] setFormatter:indexFormatter]; [indexFormatter release]; - + //end setting up formatters + [self setVerticalMotionCanBeginDrag:YES]; + + //Set up header context menu + headerContextMenu = [[NSMenu alloc] initWithTitle:@"Playlist Header Context Menu"]; + + NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"headerCell.title" ascending:YES]; + NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; + NSEnumerator *e = [[[[self allTableColumns] allObjects] sortedArrayUsingDescriptors: sortDescriptors] objectEnumerator]; + + int menuIndex = 0; + NSTableColumn *col; + while (col = [e nextObject]) { + NSMenuItem *contextMenuItem = [headerContextMenu insertItemWithTitle:[[col headerCell] title] action:@selector(toggleColumn:) keyEquivalent:@"" atIndex:menuIndex]; + + [contextMenuItem setTarget:self]; + [contextMenuItem setRepresentedObject:col]; + [contextMenuItem setState:([[self visibleTableColumns] containsObject:col] ? NSOnState : NSOffState)]; + + menuIndex++; + } + [sortDescriptor release]; + + [[self headerView] setMenu:headerContextMenu]; }