Skip to content

Commit 1506148

Browse files
committed
kit: advanced commit view controller search text field has been added.
1 parent 52e896b commit 1506148

File tree

1 file changed

+29
-8
lines changed

1 file changed

+29
-8
lines changed

GitUpKit/Views/GIAdvancedCommitViewController.m

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
#import "GIWindowController.h"
2828
#import "XLFacilityMacros.h"
2929

30-
@interface GIAdvancedCommitViewController () <GIDiffFilesViewControllerDelegate, GIDiffContentsViewControllerDelegate>
30+
@interface GIAdvancedCommitViewController () <GIDiffFilesViewControllerDelegate, GIDiffContentsViewControllerDelegate, NSSearchFieldDelegate>
3131
@property(nonatomic, weak) IBOutlet GIColorView* workdirHeaderView;
3232
@property(nonatomic, weak) IBOutlet NSView* workdirFilesView;
3333
@property(nonatomic, weak) IBOutlet GIColorView* indexHeaderView;
@@ -37,6 +37,7 @@ @interface GIAdvancedCommitViewController () <GIDiffFilesViewControllerDelegate,
3737
@property(nonatomic, weak) IBOutlet NSButton* commitButton;
3838
@property(nonatomic, weak) IBOutlet NSButton* stageButton;
3939
@property(nonatomic, weak) IBOutlet NSButton* discardButton;
40+
@property(nonatomic, weak) IBOutlet NSTextField* searchTextField;
4041
@end
4142

4243
@implementation GIAdvancedCommitViewController {
@@ -50,6 +51,23 @@ @implementation GIAdvancedCommitViewController {
5051
BOOL _disableFeedback;
5152
}
5253

54+
#pragma mark - Search
55+
- (void)setupSearch {
56+
[NSNotificationCenter.defaultCenter addObserver:self selector:@selector(textDidChange:) name:NSTextDidChangeNotification object:nil];
57+
}
58+
59+
- (void)textDidChange:(NSNotification *)notification {
60+
NSLog(@"NewValue: %@", self.searchTextField.stringValue);
61+
NSString *text = self.searchTextField.stringValue;
62+
if ([@"" isEqualToString:text]) {
63+
[self.repository updateFilePattern:nil];
64+
}
65+
else {
66+
[self.repository updateFilePattern:text];
67+
}
68+
}
69+
70+
#pragma mark - View Lifecycle
5371
- (void)loadView {
5472
[super loadView];
5573

@@ -75,6 +93,7 @@ - (void)loadView {
7593
[_diffContentsView replaceWithView:_diffContentsViewController.view];
7694

7795
self.messageTextView.string = @"";
96+
[self setupSearch];
7897
}
7998

8099
- (void)viewWillAppear {
@@ -104,6 +123,7 @@ - (void)viewDidDisappear {
104123
self.repository.statusMode = kGCLiveRepositoryStatusMode_Disabled;
105124
}
106125

126+
#pragma mark - Repository Handling
107127
- (void)repositoryStatusDidUpdate {
108128
[super repositoryStatusDidUpdate];
109129

@@ -157,6 +177,14 @@ - (void)_reloadContents {
157177
[self _updateCommitButton];
158178
}
159179

180+
- (void)didCreateCommit:(GCCommit*)commit {
181+
[super didCreateCommit:commit];
182+
183+
_indexActive = NO;
184+
[self.view.window makeFirstResponder:_workdirFilesViewController.preferredFirstResponder];
185+
}
186+
187+
#pragma mark - First Responder
160188
// We can't use the default implementation since we need a dynamic first-responder
161189
- (NSView*)preferredFirstResponder {
162190
if (_indexStatus.deltas.count && !_workdirStatus.deltas.count) {
@@ -165,13 +193,6 @@ - (NSView*)preferredFirstResponder {
165193
return _workdirFilesViewController.preferredFirstResponder;
166194
}
167195

168-
- (void)didCreateCommit:(GCCommit*)commit {
169-
[super didCreateCommit:commit];
170-
171-
_indexActive = NO;
172-
[self.view.window makeFirstResponder:_workdirFilesViewController.preferredFirstResponder];
173-
}
174-
175196
#pragma mark - GIDiffFilesViewControllerDelegate
176197

177198
- (void)diffFilesViewControllerDidBecomeFirstResponder:(GIDiffFilesViewController*)controller {

0 commit comments

Comments
 (0)