Performance improvements for the status column.

CQTexperiment
vspader 2008-02-23 13:57:33 +00:00
parent e58c172eeb
commit c31eae4541
6 changed files with 2243 additions and 2331 deletions

View File

@ -217,21 +217,6 @@ increase/decrease as long as the user holds the left/right, plus/minus button */
return [key isEqualToString:@"currentEntry"] || [key isEqualToString:@"play"]; return [key isEqualToString:@"currentEntry"] || [key isEqualToString:@"play"];
} }
- (void)initShowColumn:(NSMenuItem *)showColumn withIdentifier:(NSString *)identifier
{
id tc = [playlistView tableColumnWithIdentifier:identifier];
if ([tc isHidden]) {
[showColumn setState:NSOffState];
}
else {
[showColumn setState:NSOnState];
}
[showColumn setRepresentedObject: tc];
}
- (void)awakeFromNib - (void)awakeFromNib
{ {
[mainWindow setExcludedFromWindowsMenu:YES]; [mainWindow setExcludedFromWindowsMenu:YES];
@ -247,15 +232,6 @@ increase/decrease as long as the user holds the left/right, plus/minus button */
[repeatButton setToolTip:NSLocalizedString(@"RepeatButtonTooltip", @"")]; [repeatButton setToolTip:NSLocalizedString(@"RepeatButtonTooltip", @"")];
[fileButton setToolTip:NSLocalizedString(@"FileButtonTooltip", @"")]; [fileButton setToolTip:NSLocalizedString(@"FileButtonTooltip", @"")];
[self initShowColumn: showIndexColumn withIdentifier: @"index"];
[self initShowColumn: showTitleColumn withIdentifier: @"title"];
[self initShowColumn: showArtistColumn withIdentifier: @"artist"];
[self initShowColumn: showAlbumColumn withIdentifier: @"album"];
[self initShowColumn: showGenreColumn withIdentifier: @"genre"];
[self initShowColumn: showLengthColumn withIdentifier: @"length"];
[self initShowColumn: showTrackColumn withIdentifier: @"track"];
[self initShowColumn: showYearColumn withIdentifier: @"year"];
[self registerHotKeys]; [self registerHotKeys];
[fileTreeWindowController init]; [fileTreeWindowController init];

File diff suppressed because it is too large Load Diff

View File

@ -20,7 +20,6 @@
- (IBAction)sortByPath:(id)sender; - (IBAction)sortByPath:(id)sender;
- (IBAction)shufflePlaylist:(id)sender; - (IBAction)shufflePlaylist:(id)sender;
- (BOOL)validateMenuItem:(NSMenuItem *)item;
- (IBAction)toggleColumn:(id)sender; - (IBAction)toggleColumn:(id)sender;

View File

@ -10,8 +10,6 @@
#import "PlaybackController.h" #import "PlaybackController.h"
#import "PlaylistController.h" #import "PlaylistController.h"
#import "PlaylistHeaderView.h"
#import "IndexFormatter.h" #import "IndexFormatter.h"
#import "SecondsFormatter.h" #import "SecondsFormatter.h"
#import "PlaylistEntry.h" #import "PlaylistEntry.h"
@ -33,6 +31,7 @@
toObject:[NSUserDefaultsController sharedUserDefaultsController] toObject:[NSUserDefaultsController sharedUserDefaultsController]
withKeyPath:@"values.fontSize" withKeyPath:@"values.fontSize"
options:bindOptions]; options:bindOptions];
for(NSTableColumn *col in [self tableColumns]) { for(NSTableColumn *col in [self tableColumns]) {
[[col dataCell] setControlSize:s]; [[col dataCell] setControlSize:s];
[[col dataCell] setFont:f]; [[col dataCell] setFont:f];
@ -44,15 +43,6 @@
} }
} }
NSTableHeaderView *currentTableHeaderView = [self headerView];
PlaylistHeaderView *customTableHeaderView = [[PlaylistHeaderView alloc] init];
[customTableHeaderView setFrame:[currentTableHeaderView frame]];
[customTableHeaderView setBounds:[currentTableHeaderView bounds]];
// [self setColumnAutoresizingStyle:NSTableViewNoColumnAutoresizing];
[self setHeaderView:customTableHeaderView];
//Set up formatters //Set up formatters
NSFormatter *secondsFormatter = [[SecondsFormatter alloc] init]; NSFormatter *secondsFormatter = [[SecondsFormatter alloc] init];
[[[self tableColumnWithIdentifier:@"length"] dataCell] setFormatter:secondsFormatter]; [[[self tableColumnWithIdentifier:@"length"] dataCell] setFormatter:secondsFormatter];

View File

@ -10,7 +10,13 @@
@interface StatusImageTransformer : NSObject { @interface StatusImageTransformer : NSObject {
NSImage *playImage;
NSImage *queueImage;
NSImage *errorImage;
} }
@property(retain) NSImage *playImage;
@property(retain) NSImage *queueImage;
@property(retain) NSImage *errorImage;
@end @end

View File

@ -12,25 +12,39 @@
@implementation StatusImageTransformer @implementation StatusImageTransformer
@synthesize playImage;
@synthesize queueImage;
@synthesize errorImage;
+ (Class)transformedValueClass { return [NSImage class]; } + (Class)transformedValueClass { return [NSImage class]; }
+ (BOOL)allowsReverseTransformation { return NO; } + (BOOL)allowsReverseTransformation { return NO; }
- (id)init
{
self = [super init];
if (self)
{
self.playImage = [NSImage imageNamed:@"play"];
self.queueImage = [NSImage imageNamed:@"NSAddTemplate"];
self.errorImage = [NSImage imageNamed:@"NSStopProgressTemplate"];
}
return self;
}
// Convert from string to RepeatMode // Convert from string to RepeatMode
- (id)transformedValue:(id)value { - (id)transformedValue:(id)value {
NSLog(@"Transforming value: %@", value);
if (value == nil) return nil; if (value == nil) return nil;
PlaylistEntryStatus status = [value integerValue]; PlaylistEntryStatus status = [value integerValue];
NSLog(@"STATUS IS %i", status);
if (status == kCogEntryPlaying) { if (status == kCogEntryPlaying) {
return [NSImage imageNamed:@"play"]; return self.playImage;
} }
else if (status == kCogEntryQueued) { else if (status == kCogEntryQueued) {
return [NSImage imageNamed:@"NSAddTemplate"]; return self.queueImage;
} }
else if (status == kCogEntryError) { else if (status == kCogEntryError) {
return [NSImage imageNamed:@"NSStopProgressTemplate"]; return self.errorImage;
} }
return nil; return nil;