// // PreferencesController.m // iLyrics // // Created by Kim Wittenburg on 14.06.12. // Copyright (c) 2012 __MyCompanyName__. All rights reserved. // //TODO: Implement Auto-Lyricds Interval //TODO: Set the title of the window when the toolbar button selection changed #import "PreferencesController.h" @implementation PreferencesController { NSMutableArray *hosters; AutoLyrics *autoLyrics; } @synthesize generalView; @synthesize autoLyricsView; @synthesize toggleAutoLyricsButton; @synthesize replaceOldCheckBox; @synthesize preferencesWindow; @synthesize generalButton; @synthesize hosterTable; -(id)init { autoLyrics = [AutoLyrics autoLyrics]; hosters = [[NSMutableArray alloc] init]; return [super init]; } #pragma mark - #pragma mark Window Delegate Methods -(void)awakeFromNib { if ([autoLyrics enabled]) { [self enableAutoLyrics:toggleAutoLyricsButton]; } else { [self disableAutoLyrics:toggleAutoLyricsButton]; } if ([autoLyrics replaceOldLyrics]) { [replaceOldCheckBox setState:NSOnState]; } else { [replaceOldCheckBox setState:NSOffState]; } [[preferencesWindow toolbar] setSelectedItemIdentifier:@"general"]; [self showGeneralPreferences:nil]; } #pragma mark - #pragma mark Properties -(NSArray *)hosters { return hosters; } -(void)setHosters:(NSArray *)hstrs { hosters = [NSMutableArray arrayWithArray:hstrs]; [hosterTable reloadData]; } #pragma mark Modifying hosters -(void)addHoster:(id)hoster { [hosters addObject:hoster]; [hosterTable reloadData]; } -(void)removeHoster:(id)hoster { [hosters removeObject:hoster]; [hosterTable reloadData]; } - (IBAction)showGeneralPreferences:(id)sender { [self changeContentViewTo:generalView]; } -(IBAction)showAutoLyricsPreferences:(id)sender { [self changeContentViewTo:autoLyricsView]; } - (IBAction)toggleAutoLyrics:(id)sender { if ([autoLyrics enabled]) { [self disableAutoLyrics:sender]; } else { [self enableAutoLyrics:sender]; } } -(void)enableAutoLyrics: (id) sender{ [autoLyrics setEnabled:YES]; [sender setTitle:NSLocalizedString(@"iLyrics.text.disableAutoLyrics", @"")]; } -(void)disableAutoLyrics: (id) sender { [autoLyrics setEnabled:NO]; [sender setTitle:NSLocalizedString(@"iLyrics.text.enableAutoLyrics", @"")]; } - (IBAction)changeAutoLyricsInterval:(id)sender { NSLog(@"%i", [sender intValue]); } - (IBAction)toggleReplaceOldLyrics:(id)sender { [autoLyrics setReplaceOldLyrics:[sender state] == NSOnState]; } - (void)changeContentViewTo: (NSView *)view { [preferencesWindow setContentView:view]; //[preferencesWindow setFrame:[view frame] display:YES animate:YES]; } #pragma mark - #pragma mark Table Data Source -(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView { return [hosters count]; } -(id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { if ([[tableColumn identifier] isEqualToString:@"hoster"]) { return [[hosters objectAtIndex:row] name]; } else { NSDate *version = [[hosters objectAtIndex:row] hosterVersion]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateStyle:NSDateFormatterLongStyle]; [dateFormatter setTimeStyle:NSDateFormatterNoStyle]; return [dateFormatter stringFromDate:version]; } } @end