William Bowling is sharing code with you
Bitbucket is a code hosting site. Unlimited public and private repositories. Free for small teams.
Don't show this again1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | //
// AIMentionAdvancedPreferences.m
// Adium
//
// Created by Zachary West on 2009-03-31.
//
#import "AIMentionAdvancedPreferences.h"
#import "AIPreferenceWindowController.h"
#import <AIUtilities/AIImageAdditions.h>
#import <AIUtilities/AIArrayAdditions.h>
@interface AIMentionAdvancedPreferences()
- (void)saveTerms;
@end
@implementation AIMentionAdvancedPreferences
#pragma mark Preference pane settings
- (AIPreferenceCategory)category
{
return AIPref_Advanced;
}
- (NSString *)label{
return AILocalizedString(@"Mention",nil);
}
- (NSString *)nibName{
return @"AIMentionAdvancedPreferences";
}
- (NSImage *)image{
return [NSImage imageNamed:@"pref-mention" forClass:[AIPreferenceWindowController class]];
}
- (void)saveTerms
{
NSMutableArray *termsCopy = [[mentionTerms mutableCopy] autorelease];
// Never save a blank term.
[termsCopy removeObject:@""];
[adium.preferenceController setPreference:termsCopy
forKey:PREF_KEY_MENTIONS
group:PREF_GROUP_GENERAL];
}
/*!
* @brief Add a new row, select it for editing
*/
- (IBAction)add:(id)sender
{
[mentionTerms addObject:@""];
[tableView reloadData];
NSInteger index = mentionTerms.count-1;
[tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:index] byExtendingSelection:NO];
[tableView editColumn:0 row:index withEvent:nil select:YES];
}
/*!
* @brief Remove the selected rows
*/
- (IBAction)remove:(id)sender
{
NSIndexSet *indexes = [tableView selectedRowIndexes];
[mentionTerms removeObjectsAtIndexes:indexes];
[self saveTerms];
[tableView reloadData];
[tableView deselectAll:nil];
}
/*!
* @brief The view loaded
*/
- (void)viewDidLoad
{
[label_explanation setStringValue:AILocalizedString(@"Messages are highlighted when the following terms are spoken. Your username is always highlighted.", nil)];
mentionTerms = [[NSMutableArray alloc] initWithArray:[adium.preferenceController preferenceForKey:PREF_KEY_MENTIONS group:PREF_GROUP_GENERAL]];
[super viewDidLoad];
}
- (void)viewWillClose
{
[mentionTerms release]; mentionTerms = nil;
[super viewWillClose];
}
#pragma mark Table view Delegate
- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView
{
return mentionTerms.count;
}
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)rowIndex
{
NSString *identifier = tableColumn.identifier;
if ([identifier isEqualToString:@"text"]) {
return [mentionTerms objectAtIndex:rowIndex];
}
return nil;
}
- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
NSString *identifier = tableColumn.identifier;
if ([identifier isEqualToString:@"text"]) {
[mentionTerms setObject:object atIndex:row];
[self saveTerms];
}
}
- (void)tableViewDeleteSelectedRows:(NSTableView *)tableView
{
[self remove:nil];
}
@end
|