@@ -30,7 +30,7 @@ + (NSString *)parseBinaryDiff:(NSString *)txt;
30
30
31
31
@implementation GLFileView
32
32
33
- @synthesize historyController, typeBar;
33
+ @synthesize historyController, typeBar, stepper, searchField, numberOfMatches, groups, logFormat ;
34
34
35
35
- (void ) awakeFromNib
36
36
{
@@ -140,7 +140,7 @@ - (void) showFile
140
140
}else {
141
141
[script callWebScriptMethod: @" setMessage" withArguments: [NSArray arrayWithObjects: [theError localizedDescription ], nil ]];
142
142
}
143
- [self updateSearch: searchField ];
143
+ [self updateSearch ];
144
144
}
145
145
}
146
146
@@ -681,17 +681,62 @@ - (void)restoreSplitViewPositiion
681
681
[fileListSplitView setHidden: NO ];
682
682
}
683
683
684
- #pragma mark IBActions
684
+ // -------------
685
+ // File search
686
+ // -------------
685
687
686
- -(IBAction )updateSearch : (NSSearchField *)sender
688
+ #pragma mark -
689
+ #pragma mark Search
690
+
691
+ NSString *searchString;
692
+
693
+ - (NSString *)numberOfMatchesString
694
+ {
695
+ if ([view resultCount ] == 0 )
696
+ return @" Not found" ;
697
+
698
+ if ([view resultCount ] == 1 )
699
+ return @" 1 match" ;
700
+
701
+ return [NSString stringWithFormat: @" %d matches" , [view resultCount ]];
702
+ }
703
+
704
+ - (void ) updateSearch
687
705
{
688
- [view updateSearch: sender];
706
+ [view search: searchField update: YES direction: YES ];
707
+ [self updateSearchUI ];
689
708
}
690
709
691
- #pragma mark -
710
+ - (void ) updateSearchUI
711
+ {
712
+ if ([searchString length ] == 0 ) {
713
+ [numberOfMatches setHidden: YES ];
714
+ [stepper setHidden: YES ];
715
+ }
716
+ else {
717
+ [numberOfMatches setHidden: NO ];
718
+ [stepper setHidden: NO ];
719
+ [numberOfMatches setStringValue: [self numberOfMatchesString ]];
720
+ [stepper setEnabled: ([view resultCount ]>0 )];
721
+ }
722
+ }
723
+
724
+ - (IBAction )searchFieldChanged : (id )sender
725
+ {
726
+ BOOL update=[[searchField stringValue ] isEqualToString: searchString]? NO : YES ;
727
+ searchString=[searchField stringValue ];
728
+ [view search: searchField update: update direction: YES ];
729
+ [self updateSearchUI ];
730
+ }
692
731
693
732
694
- @synthesize groups;
695
- @synthesize logFormat;
733
+ - (IBAction )stepperPressed : (id )sender {
734
+ NSInteger selectedSegment = [sender selectedSegment ];
735
+
736
+ if (selectedSegment == 0 )
737
+ [view search: searchField update: NO direction: NO ];
738
+ else
739
+ [view search: searchField update: NO direction: YES ];
740
+ }
696
741
697
742
@end
0 commit comments