From: <ho...@us...> - 2007-07-18 22:22:04
|
Revision: 2528 http://skim-app.svn.sourceforge.net/skim-app/?rev=2528&view=rev Author: hofman Date: 2007-07-18 15:21:54 -0700 (Wed, 18 Jul 2007) Log Message: ----------- Add search field to filter notes table. Modified Paths: -------------- trunk/Dutch.lproj/MainWindow.nib/classes.nib trunk/Dutch.lproj/MainWindow.nib/data.dependency trunk/Dutch.lproj/MainWindow.nib/info.nib trunk/Dutch.lproj/MainWindow.nib/keyedobjects.nib trunk/English.lproj/MainWindow.nib/classes.nib trunk/English.lproj/MainWindow.nib/info.nib trunk/English.lproj/MainWindow.nib/keyedobjects.nib trunk/Italian.lproj/MainWindow.nib/classes.nib trunk/Italian.lproj/MainWindow.nib/info.nib trunk/Italian.lproj/MainWindow.nib/keyedobjects.nib trunk/SKMainWindowController.h trunk/SKMainWindowController.m Modified: trunk/Dutch.lproj/MainWindow.nib/classes.nib =================================================================== --- trunk/Dutch.lproj/MainWindow.nib/classes.nib 2007-07-18 18:53:36 UTC (rev 2527) +++ trunk/Dutch.lproj/MainWindow.nib/classes.nib 2007-07-18 22:21:54 UTC (rev 2528) @@ -84,6 +84,7 @@ rotateRight = id; savePDFSettingToDefaults = id; search = id; + searchNotes = id; searchPDF = id; selectColor = id; smartAutoCropAll = id; @@ -129,6 +130,7 @@ noteArrayController = NSArrayController; noteOutlineView = SKNoteOutlineView; notePopUpButton = BDSKImagePopUpButton; + noteSearchField = NSSearchField; noteView = NSView; outlineView = NSOutlineView; ownerController = NSObjectController; @@ -144,6 +146,7 @@ progressSheet = NSWindow; rightSideBox = NSBox; rightSideButton = NSSegmentedControl; + rightSideCollapsibleView = BDSKCollapsibleView; rightSideContentBox = NSBox; rightSideEdgeView = BDSKEdgeView; scaleField = NSTextField; Modified: trunk/Dutch.lproj/MainWindow.nib/data.dependency =================================================================== --- trunk/Dutch.lproj/MainWindow.nib/data.dependency 2007-07-18 18:53:36 UTC (rev 2527) +++ trunk/Dutch.lproj/MainWindow.nib/data.dependency 2007-07-18 22:21:54 UTC (rev 2528) @@ -4,6 +4,7 @@ <dict> <key>IBPaletteDependency</key> <array> + <string>Controllers</string> <string>PDFKit</string> </array> </dict> Modified: trunk/Dutch.lproj/MainWindow.nib/info.nib =================================================================== --- trunk/Dutch.lproj/MainWindow.nib/info.nib 2007-07-18 18:53:36 UTC (rev 2527) +++ trunk/Dutch.lproj/MainWindow.nib/info.nib 2007-07-18 22:21:54 UTC (rev 2528) @@ -3,7 +3,7 @@ <plist version="1.0"> <dict> <key>IBDocumentLocation</key> - <string>115 30 564 296 0 0 1440 938 </string> + <string>110 52 564 296 0 0 1440 938 </string> <key>IBEditorPositions</key> <dict> <key>168</key> @@ -25,10 +25,6 @@ <array> <integer>208</integer> </array> - <key>IBOpenObjects</key> - <array> - <integer>633</integer> - </array> <key>IBSystem Version</key> <string>8R218</string> </dict> Modified: trunk/Dutch.lproj/MainWindow.nib/keyedobjects.nib =================================================================== (Binary files differ) Modified: trunk/English.lproj/MainWindow.nib/classes.nib =================================================================== --- trunk/English.lproj/MainWindow.nib/classes.nib 2007-07-18 18:53:36 UTC (rev 2527) +++ trunk/English.lproj/MainWindow.nib/classes.nib 2007-07-18 22:21:54 UTC (rev 2528) @@ -84,6 +84,7 @@ rotateRight = id; savePDFSettingToDefaults = id; search = id; + searchNotes = id; searchPDF = id; selectColor = id; smartAutoCropAll = id; @@ -129,6 +130,7 @@ noteArrayController = NSArrayController; noteOutlineView = SKNoteOutlineView; notePopUpButton = BDSKImagePopUpButton; + noteSearchField = NSSearchField; noteView = NSView; outlineView = NSOutlineView; ownerController = NSObjectController; @@ -144,6 +146,7 @@ progressSheet = NSWindow; rightSideBox = NSBox; rightSideButton = NSSegmentedControl; + rightSideCollapsibleView = BDSKCollapsibleView; rightSideContentBox = NSBox; rightSideEdgeView = BDSKEdgeView; scaleField = NSTextField; Modified: trunk/English.lproj/MainWindow.nib/info.nib =================================================================== --- trunk/English.lproj/MainWindow.nib/info.nib 2007-07-18 18:53:36 UTC (rev 2527) +++ trunk/English.lproj/MainWindow.nib/info.nib 2007-07-18 22:21:54 UTC (rev 2528) @@ -3,7 +3,7 @@ <plist version="1.0"> <dict> <key>IBDocumentLocation</key> - <string>115 30 564 296 0 0 1440 938 </string> + <string>110 52 564 296 0 0 1440 938 </string> <key>IBEditorPositions</key> <dict> <key>168</key> @@ -27,18 +27,18 @@ </array> <key>IBOpenObjects</key> <array> - <integer>633</integer> + <integer>585</integer> + <integer>314</integer> <integer>553</integer> + <integer>502</integer> <integer>539</integer> - <integer>314</integer> - <integer>5</integer> <integer>168</integer> + <integer>208</integer> + <integer>511</integer> + <integer>256</integer> <integer>224</integer> - <integer>256</integer> - <integer>585</integer> - <integer>511</integer> - <integer>502</integer> - <integer>208</integer> + <integer>633</integer> + <integer>5</integer> </array> <key>IBSystem Version</key> <string>8R218</string> Modified: trunk/English.lproj/MainWindow.nib/keyedobjects.nib =================================================================== (Binary files differ) Modified: trunk/Italian.lproj/MainWindow.nib/classes.nib =================================================================== --- trunk/Italian.lproj/MainWindow.nib/classes.nib 2007-07-18 18:53:36 UTC (rev 2527) +++ trunk/Italian.lproj/MainWindow.nib/classes.nib 2007-07-18 22:21:54 UTC (rev 2528) @@ -84,6 +84,7 @@ rotateRight = id; savePDFSettingToDefaults = id; search = id; + searchNotes = id; searchPDF = id; selectColor = id; smartAutoCropAll = id; @@ -129,6 +130,7 @@ noteArrayController = NSArrayController; noteOutlineView = SKNoteOutlineView; notePopUpButton = BDSKImagePopUpButton; + noteSearchField = NSSearchField; noteView = NSView; outlineView = NSOutlineView; ownerController = NSObjectController; @@ -144,6 +146,7 @@ progressSheet = NSWindow; rightSideBox = NSBox; rightSideButton = NSSegmentedControl; + rightSideCollapsibleView = BDSKCollapsibleView; rightSideContentBox = NSBox; rightSideEdgeView = BDSKEdgeView; scaleField = NSTextField; Modified: trunk/Italian.lproj/MainWindow.nib/info.nib =================================================================== --- trunk/Italian.lproj/MainWindow.nib/info.nib 2007-07-18 18:53:36 UTC (rev 2527) +++ trunk/Italian.lproj/MainWindow.nib/info.nib 2007-07-18 22:21:54 UTC (rev 2528) @@ -27,13 +27,13 @@ </array> <key>IBOpenObjects</key> <array> + <integer>539</integer> <integer>208</integer> - <integer>539</integer> + <integer>168</integer> + <integer>553</integer> + <integer>5</integer> <integer>511</integer> - <integer>5</integer> <integer>628</integer> - <integer>553</integer> - <integer>168</integer> </array> <key>IBSystem Version</key> <string>8R218</string> Modified: trunk/Italian.lproj/MainWindow.nib/keyedobjects.nib =================================================================== (Binary files differ) Modified: trunk/SKMainWindowController.h =================================================================== --- trunk/SKMainWindowController.h 2007-07-18 18:53:36 UTC (rev 2527) +++ trunk/SKMainWindowController.h 2007-07-18 22:21:54 UTC (rev 2528) @@ -77,7 +77,9 @@ IBOutlet NSBox *rightSideContentBox; IBOutlet NSBox *rightSideBox; IBOutlet BDSKEdgeView *rightSideEdgeView; + IBOutlet BDSKCollapsibleView *rightSideCollapsibleView; IBOutlet NSSegmentedControl *rightSideButton; + IBOutlet NSSearchField *noteSearchField; IBOutlet NSView *currentLeftSideView; IBOutlet NSView *currentRightSideView; @@ -231,6 +233,7 @@ - (IBAction)getInfo:(id)sender; - (void)displaySearchResultsForString:(NSString *)string; - (IBAction)search:(id)sender; +- (IBAction)searchNotes:(id)sender; - (IBAction)changeScaleFactor:(id)sender; - (IBAction)chooseScale:(id)sender; - (IBAction)dismissChooseScaleSheet:(id)sender; Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2007-07-18 18:53:36 UTC (rev 2527) +++ trunk/SKMainWindowController.m 2007-07-18 22:21:54 UTC (rev 2528) @@ -141,6 +141,8 @@ - (void)exitPresentationMode; - (void)activityTimerFired:(NSTimer *)timer; +- (void)updateNoteFilterPredicate; + - (void)replaceSideView:(NSView *)oldView withView:(NSView *)newView animate:(BOOL)animate; - (void)handleApplicationWillTerminateNotification:(NSNotification *)notification; @@ -234,6 +236,9 @@ [findCollapsibleView setCollapseEdges:BDSKMaxXEdgeMask | BDSKMinYEdgeMask]; [findCollapsibleView setMinSize:NSMakeSize(50.0, 25.0)]; + [rightSideCollapsibleView setCollapseEdges:BDSKMaxXEdgeMask | BDSKMinYEdgeMask]; + [rightSideCollapsibleView setMinSize:NSMakeSize(100.0, 42.0)]; + [pdfContentBox setEdges:BDSKMinXEdgeMask | BDSKMaxXEdgeMask | BDSKMinYEdgeMask]; [findEdgeView setEdges:BDSKMaxXEdgeMask]; [leftSideEdgeView setEdges:BDSKMaxXEdgeMask]; @@ -2409,6 +2414,12 @@ } } +- (IBAction)searchNotes:(id)sender { + if ([[sender stringValue] length] && rightSidePaneState != SKNoteSidePaneState) + [self setRightSidePaneState:SKNoteSidePaneState]; + [self updateNoteFilterPredicate]; +} + #pragma mark Sub- and note- windows - (void)showSnapshotAtPageNumber:(int)pageNum forRect:(NSRect)rect factor:(int)factor display:(BOOL)display{ @@ -3168,23 +3179,7 @@ - (void)outlineViewNoteTypesDidChange:(NSOutlineView *)ov { if ([ov isEqual:noteOutlineView]) { - NSArray *types = [noteOutlineView noteTypes]; - if ([types count] == 8) { - [noteArrayController setFilterPredicate:nil]; - } else { - NSExpression *lhs = [NSExpression expressionForKeyPath:@"type"]; - NSMutableArray *predicateArray = [NSMutableArray array]; - NSEnumerator *typeEnum = [types objectEnumerator]; - NSString *type; - - while (type = [typeEnum nextObject]) { - NSExpression *rhs = [NSExpression expressionForConstantValue:type]; - NSPredicate *predicate = [NSComparisonPredicate predicateWithLeftExpression:lhs rightExpression:rhs modifier:NSDirectPredicateModifier type:NSEqualToPredicateOperatorType options:0]; - [predicateArray addObject:predicate]; - } - [noteArrayController setFilterPredicate:[NSCompoundPredicate orPredicateWithSubpredicates:predicateArray]]; - } - [noteOutlineView reloadData]; + [self updateNoteFilterPredicate]; } } @@ -3507,6 +3502,45 @@ } } +- (void)updateNoteFilterPredicate { + NSPredicate *filterPredicate = nil; + NSPredicate *typePredicate = nil; + NSPredicate *searchPredicate = nil; + NSArray *types = [noteOutlineView noteTypes]; + NSString *searchString = [noteSearchField stringValue]; + if ([types count] < 8) { + NSExpression *lhs = [NSExpression expressionForKeyPath:@"type"]; + NSMutableArray *predicateArray = [NSMutableArray array]; + NSEnumerator *typeEnum = [types objectEnumerator]; + NSString *type; + + while (type = [typeEnum nextObject]) { + NSExpression *rhs = [NSExpression expressionForConstantValue:type]; + NSPredicate *predicate = [NSComparisonPredicate predicateWithLeftExpression:lhs rightExpression:rhs modifier:NSDirectPredicateModifier type:NSEqualToPredicateOperatorType options:0]; + [predicateArray addObject:predicate]; + } + typePredicate = [NSCompoundPredicate orPredicateWithSubpredicates:predicateArray]; + } + if (searchString && [searchString isEqualToString:@""] == NO) { + NSExpression *lhs = [NSExpression expressionForConstantValue:searchString]; + NSExpression *rhs = [NSExpression expressionForKeyPath:@"contents"]; + NSPredicate *contentsPredicate = [NSComparisonPredicate predicateWithLeftExpression:lhs rightExpression:rhs modifier:NSDirectPredicateModifier type:NSInPredicateOperatorType options:NSCaseInsensitivePredicateOption | NSDiacriticInsensitivePredicateOption]; + rhs = [NSExpression expressionForKeyPath:@"text.string"]; + NSPredicate *textPredicate = [NSComparisonPredicate predicateWithLeftExpression:lhs rightExpression:rhs modifier:NSDirectPredicateModifier type:NSInPredicateOperatorType options:NSCaseInsensitivePredicateOption | NSDiacriticInsensitivePredicateOption]; + searchPredicate = [NSCompoundPredicate orPredicateWithSubpredicates:[NSArray arrayWithObjects:contentsPredicate, textPredicate, nil]]; + } + if (typePredicate) { + if (searchPredicate) + filterPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray arrayWithObjects:typePredicate, searchPredicate, nil]]; + else + filterPredicate = typePredicate; + } else if (searchPredicate) { + filterPredicate = searchPredicate; + } + [noteArrayController setFilterPredicate:filterPredicate]; + [noteOutlineView reloadData]; +} + #pragma mark Snapshots - (void)resetSnapshotSizeIfNeeded { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |