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.

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to