Skip to content

Commit b994c24

Browse files
committed
kit: advanced commit view controller commit button has been disable during search. Tooltip has been added.
1 parent d3fa64b commit b994c24

File tree

1 file changed

+32
-12
lines changed

1 file changed

+32
-12
lines changed

GitUpKit/Views/GIAdvancedCommitViewController.m

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -57,22 +57,31 @@ - (void)setupSearch {
5757
}
5858

5959
- (void)resetSearch {
60-
[self.searchTextField setStringValue:@""];
61-
[self.repository updateFilePattern:nil];
62-
self.searchTextField.nextKeyView = self.messageTextView;
63-
self.searchTextField.nextResponder = self.messageTextView;
60+
self.searchTextField.stringValue = @"";
61+
[self onSearchTextDidChange:self.searchTextField.stringValue];
62+
}
63+
64+
- (void)onSearchTextDidChange:(NSString *)text {
65+
BOOL isSearchDisabled = [@"" isEqualToString:text];
66+
if (isSearchDisabled) {
67+
[self.repository updateFilePattern:nil];
68+
self.commitButton.toolTip = nil;
69+
}
70+
else {
71+
[self.repository updateFilePattern:text];
72+
self.commitButton.toolTip = NSLocalizedString(@"Search in progress", nil);
73+
}
74+
[self _updateCommitButton];
75+
}
76+
77+
- (BOOL)searchInProgress {
78+
return self.repository.filePattern != nil;
6479
}
6580

6681
#pragma mark - NSControlTextEditingDelegate
6782
- (void)controlTextDidChange:(NSNotification *)obj {
6883
if (obj.object == self.searchTextField) {
69-
NSString *text = self.searchTextField.stringValue;
70-
if ([@"" isEqualToString:text]) {
71-
[self.repository updateFilePattern:nil];
72-
}
73-
else {
74-
[self.repository updateFilePattern:text];
75-
}
84+
[self onSearchTextDidChange:self.searchTextField.stringValue];
7685
}
7786
}
7887

@@ -147,7 +156,18 @@ - (void)repositoryStatusDidUpdate {
147156
}
148157

149158
- (void)_updateCommitButton {
150-
_commitButton.enabled = _indexStatus.modified || (self.repository.state == kGCRepositoryState_Merge) || self.amendButton.state; // Creating an empty commit is OK for a merge or when amending
159+
_commitButton.enabled =
160+
_indexStatus.modified
161+
|| (self.repository.state == kGCRepositoryState_Merge)
162+
|| self.amendButton.state; // Creating an empty commit is OK for a merge or when amending
163+
_commitButton.enabled = _commitButton.enabled && !self.searchInProgress;
164+
165+
if (self.searchInProgress) {
166+
_commitButton.toolTip = NSLocalizedString(@"Search in progress", @"");
167+
}
168+
else {
169+
_commitButton.toolTip = nil;
170+
}
151171
}
152172

153173
- (void)_reloadContents {

0 commit comments

Comments
 (0)