From ba3b7ea279b3ec12679f7a48bfbbc0b7a9f017bb Mon Sep 17 00:00:00 2001 From: Mitchell Livingston Date: Sun, 23 Jul 2006 20:53:31 +0000 Subject: [PATCH] Type-ahead in the table view. Works similar to the way typing in the finder works. --- macosx/English.lproj/PrefsWindow.nib/info.nib | 10 ++-- .../PrefsWindow.nib/keyedobjects.nib | Bin 29422 -> 29383 bytes macosx/TorrentTableView.h | 2 + macosx/TorrentTableView.m | 56 ++++++++++++++++++ 4 files changed, 63 insertions(+), 5 deletions(-) diff --git a/macosx/English.lproj/PrefsWindow.nib/info.nib b/macosx/English.lproj/PrefsWindow.nib/info.nib index f28b7714d..71bcdfda3 100644 --- a/macosx/English.lproj/PrefsWindow.nib/info.nib +++ b/macosx/English.lproj/PrefsWindow.nib/info.nib @@ -7,19 +7,19 @@ IBEditorPositions 153 - 299 469 554 217 0 0 1152 842 + 155 441 554 217 0 0 1152 842 28 - 124 423 554 295 0 0 1152 842 + 229 409 554 290 0 0 1152 842 41 - 299 417 554 321 0 0 1152 842 + 125 133 554 321 0 0 1152 842 66 - 299 526 554 104 0 0 1152 842 + 212 526 554 104 0 0 1152 842 IBFramework Version 446.1 IBOpenObjects - 28 + 66 IBSystem Version 8J135 diff --git a/macosx/English.lproj/PrefsWindow.nib/keyedobjects.nib b/macosx/English.lproj/PrefsWindow.nib/keyedobjects.nib index c5563bf3335f6284c89fd436be01231bb1bad6c5..aac017554ba1cd98701b92ea27ae8501e90c8f5f 100644 GIT binary patch delta 11834 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 DW^yP` delta 11685 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 fd^f%qKZc(IzvhE~4Ek4n@Q?lC?f3gn{M!EkCDH 0 && [event timestamp] - [[fKeyStrokes lastObject] timestamp] > 1.0) + [fKeyStrokes removeAllObjects]; + [fKeyStrokes addObject: event]; + + [self interpretKeyEvents: fKeyStrokes]; + } + else + { + if ([fKeyStrokes count] > 0) + [fKeyStrokes removeAllObjects]; + + [super keyDown: event]; + } +} + +- (void) insertText: (NSString *) text +{ + NSLog(text); + + //sort torrents by name before finding closest match + NSSortDescriptor * nameDescriptor = [[[NSSortDescriptor alloc] initWithKey: @"name" ascending: YES] autorelease]; + NSArray * descriptors = [[NSArray alloc] initWithObjects: nameDescriptor, nil]; + + NSArray * tempTorrents = [fTorrents sortedArrayUsingDescriptors: descriptors]; + [descriptors release]; + + //select torrent closest to text that isn't before text alphabetically + NSEnumerator * enumerator = [tempTorrents objectEnumerator]; + Torrent * torrent; + while ((torrent = [enumerator nextObject])) + { + if ([[torrent name] caseInsensitiveCompare: text] != NSOrderedAscending) + { + [self selectRow: [fTorrents indexOfObject: torrent] byExtendingSelection: NO]; + break; + } + } + + //select last torrent alphabetically if no match found + if (!torrent) + [self selectRow: [fTorrents indexOfObject: [tempTorrents lastObject]] byExtendingSelection: NO]; +} + - (void) drawRect: (NSRect) r { NSRect rect;