forked from ttscoff/nv
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathQuickSearchTable.m
executable file
·54 lines (40 loc) · 1.52 KB
/
QuickSearchTable.m
1
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
#import "QuickSearchTable.h"
#import "SavedSearchesController.h"
@implementation QuickSearchTable
- (id)initWithCoder:(NSCoder *)decoder {
if (self = [super initWithCoder:decoder]) {
}
return self;
}
- (void)editColumn:(int)columnIndex row:(int)rowIndex withEvent:(NSEvent *)theEvent select:(BOOL)flag {
[super editColumn:columnIndex row:rowIndex withEvent:theEvent select:flag];
//this is way easier and faster than a custom formatter! just change the title while we're editing!
SavedSearch *search = [(SavedSearchesController*)[self dataSource] savedSearchAtIndex:rowIndex];
if (search) {
NSTextView *editor = (NSTextView*)[self currentEditor];
[editor setString:[search searchString]];
[editor setSelectedRange:NSMakeRange(0, [[search searchString] length])];
}
}
- (BOOL)acceptsFirstMouse:(NSEvent *)theEvent {
return YES;
}
- (void)keyDown:(NSEvent*)theEvent {
unichar keyChar = [[theEvent characters] characterAtIndex:0];
if (keyChar == NSNewlineCharacter || keyChar == NSCarriageReturnCharacter || keyChar == NSEnterCharacter) {
unsigned int sel = [self selectedRow];
if (sel < [self numberOfRows] && [self numberOfSelectedRows] == 1) {
[self editColumn:0 row:sel withEvent:theEvent select:YES];
return;
}
} else if (keyChar == NSDeleteCharacter || keyChar == NSDeleteFunctionKey) {
[(SavedSearchesController*)[self dataSource] removeSearch:nil];
return;
}
[super keyDown:theEvent];
}
//force column re-layout while resizing
- (void)drawRect:(NSRect)aRect {
[super drawRect:aRect];
}
@end