Archived
1
This repository has been archived on 2022-08-08. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ilyrics/iLyrics/PreferencesController.m
Kim Wittenburg cf3b960d85 Release No. 1.1
Added Auto-Lyrics
Improved the preferences window
2012-06-17 01:06:46 +02:00

131 lines
3.4 KiB
Objective-C

//
// 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<LyricsHoster>)hoster {
[hosters addObject:hoster];
[hosterTable reloadData];
}
-(void)removeHoster:(id<LyricsHoster>)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