From: <ho...@us...> - 2007-08-31 19:51:45
|
Revision: 11025 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=11025&view=rev Author: hofman Date: 2007-08-31 12:51:44 -0700 (Fri, 31 Aug 2007) Log Message: ----------- Filter macros using a search field and predicates. Modified Paths: -------------- trunk/bibdesk/BDSKMacroWindowController.h trunk/bibdesk/BDSKMacroWindowController.m trunk/bibdesk/English.lproj/MacroWindow.nib/classes.nib trunk/bibdesk/English.lproj/MacroWindow.nib/keyedobjects.nib trunk/bibdesk/French.lproj/MacroWindow.nib/classes.nib trunk/bibdesk/French.lproj/MacroWindow.nib/keyedobjects.nib Modified: trunk/bibdesk/BDSKMacroWindowController.h =================================================================== --- trunk/bibdesk/BDSKMacroWindowController.h 2007-08-31 19:02:59 UTC (rev 11024) +++ trunk/bibdesk/BDSKMacroWindowController.h 2007-08-31 19:51:44 UTC (rev 11025) @@ -63,7 +63,6 @@ - (void)removeObjectFromMacrosAtIndex:(unsigned)idx; - (void)replaceObjectInMacrosAtIndex:(unsigned)idx withObject:(id)obj; - - (IBAction)addMacro:(id)sender; - (IBAction)removeSelectedMacros:(id)sender; - (BOOL)addMacrosFromBibTeXString:(NSString *)aString; @@ -71,6 +70,8 @@ - (void)beginSheetModalForWindow:(NSWindow *)modalWindow; - (IBAction)closeAction:(id)sender; +- (IBAction)search:(id)sender; + - (IBAction)editSelectedFieldAsRawBibTeX:(id)sender; - (BOOL)editSelectedCellAsMacro; Modified: trunk/bibdesk/BDSKMacroWindowController.m =================================================================== --- trunk/bibdesk/BDSKMacroWindowController.m 2007-08-31 19:02:59 UTC (rev 11024) +++ trunk/bibdesk/BDSKMacroWindowController.m 2007-08-31 19:51:44 UTC (rev 11025) @@ -292,6 +292,17 @@ } } +- (IBAction)search:(id)sender { + NSString *string = [sender stringValue]; + NSPredicate *predicate = nil; + if ([NSString isEmptyString:string] == NO) { + string = [NSString stringWithFormat:@"*%@*", string]; + predicate = [NSPredicate predicateWithFormat:@"(name like[cd] %@) OR (value like[cd] %@)", string, string]; + } + [arrayController setFilterPredicate:predicate]; + [tableView reloadData]; +} + #pragma mark Macro editing - (IBAction)editSelectedFieldAsRawBibTeX:(id)sender{ @@ -466,6 +477,28 @@ [self updateButtons]; } +- (void)tableView:(NSTableView *)tv didClickTableColumn:(NSTableColumn *)tableColumn{ + NSSortDescriptor *sortDescriptor = [[arrayController sortDescriptors] lastObject]; + + NSString *oldKey = [sortDescriptor key]; + NSString *newKey = [[tableColumn identifier] isEqualToString:@"macro"] ? @"name" : @"value"; + + if ([newKey isEqualToString:oldKey]) + sortDescriptor = [sortDescriptor reversedSortDescriptor]; + else + sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:newKey ascending:YES selector:@selector(caseInsensitiveCompare:)] autorelease]; + [arrayController setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]]; + + if ([newKey isEqualToString:oldKey] == NO) + [tableView setIndicatorImage:nil inTableColumn:[tableView highlightedTableColumn]]; + [tableView setHighlightedTableColumn:tableColumn]; + [tableView setIndicatorImage:[sortDescriptor ascending] ? [NSImage imageNamed:@"NSAscendingSortIndicator"] : [NSImage imageNamed:@"NSDescendingSortIndicator"] + inTableColumn:tableColumn]; + + [arrayController rearrangeObjects]; + [tableView reloadData]; +} + #pragma mark || dragging operations // this is also called from the copy: action defined in NSTableView_OAExtensions Modified: trunk/bibdesk/English.lproj/MacroWindow.nib/classes.nib =================================================================== (Binary files differ) Modified: trunk/bibdesk/English.lproj/MacroWindow.nib/keyedobjects.nib =================================================================== (Binary files differ) Modified: trunk/bibdesk/French.lproj/MacroWindow.nib/classes.nib =================================================================== --- trunk/bibdesk/French.lproj/MacroWindow.nib/classes.nib 2007-08-31 19:02:59 UTC (rev 11024) +++ trunk/bibdesk/French.lproj/MacroWindow.nib/classes.nib 2007-08-31 19:51:44 UTC (rev 11025) @@ -7,6 +7,7 @@ closeAction = id; editSelectedFieldAsRawBibTeX = id; removeSelectedMacros = id; + search = id; }; CLASS = BDSKMacroWindowController; LANGUAGE = ObjC; Modified: trunk/bibdesk/French.lproj/MacroWindow.nib/keyedobjects.nib =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |