mirror of
https://github.com/Microsoft/vscode
synced 2024-09-20 19:18:03 +00:00
convert to 2-stage button
Finally realized what a 2-stage button is... Clears search fields first if there are any values entered, otherwise clears file pattern fields
This commit is contained in:
parent
a655038695
commit
234bbef7b4
|
@ -446,7 +446,7 @@ export class ClearSearchResultsAction extends Action {
|
|||
|
||||
update(): void {
|
||||
const searchView = getSearchView(this.viewsService);
|
||||
this.enabled = !!searchView && (!searchView.allSearchFieldsClear() || searchView.hasSearchResults());
|
||||
this.enabled = !!searchView && (!searchView.allSearchFieldsClear() || searchView.hasSearchResults() || !searchView.allFilePatternFieldsClear());
|
||||
}
|
||||
|
||||
run(): Promise<void> {
|
||||
|
@ -458,32 +458,6 @@ export class ClearSearchResultsAction extends Action {
|
|||
}
|
||||
}
|
||||
|
||||
export class ClearSearchPatternInputsAction extends Action {
|
||||
|
||||
static readonly ID: string = 'search.action.clearSearchPatternInputs';
|
||||
static LABEL: string = nls.localize('ClearSearchPatternInputsAction.label', "Clear Search Pattern Inputs");
|
||||
|
||||
constructor(id: string, label: string,
|
||||
@IViewsService private readonly viewsService: IViewsService
|
||||
) {
|
||||
super(id, label, 'search-action ' + searchClearIcon.classNames);
|
||||
this.update();
|
||||
}
|
||||
|
||||
update(): void {
|
||||
const searchView = getSearchView(this.viewsService);
|
||||
this.enabled = !!searchView && (!searchView.allSearchPatternFieldsClear());
|
||||
}
|
||||
|
||||
run(): Promise<void> {
|
||||
const searchView = getSearchView(this.viewsService);
|
||||
if (searchView) {
|
||||
searchView.clearSearchPatternInputs();
|
||||
}
|
||||
return Promise.resolve();
|
||||
}
|
||||
}
|
||||
|
||||
export class CancelSearchAction extends Action {
|
||||
|
||||
static readonly ID: string = 'search.action.cancelSearch';
|
||||
|
|
|
@ -43,7 +43,7 @@ import { OpenFileFolderAction, OpenFolderAction } from 'vs/workbench/browser/act
|
|||
import { ResourceLabels } from 'vs/workbench/browser/labels';
|
||||
import { IEditorPane } from 'vs/workbench/common/editor';
|
||||
import { ExcludePatternInputWidget, PatternInputWidget } from 'vs/workbench/contrib/search/browser/patternInputWidget';
|
||||
import { CancelSearchAction, ClearSearchResultsAction, ClearSearchPatternInputsAction, CollapseDeepestExpandedLevelAction, RefreshAction, IFindInFilesArgs, appendKeyBindingLabel, ExpandAllAction, ToggleCollapseAndExpandAction } from 'vs/workbench/contrib/search/browser/searchActions';
|
||||
import { CancelSearchAction, ClearSearchResultsAction, CollapseDeepestExpandedLevelAction, RefreshAction, IFindInFilesArgs, appendKeyBindingLabel, ExpandAllAction, ToggleCollapseAndExpandAction } from 'vs/workbench/contrib/search/browser/searchActions';
|
||||
import { FileMatchRenderer, FolderMatchRenderer, MatchRenderer, SearchAccessibilityProvider, SearchDelegate, SearchDND } from 'vs/workbench/contrib/search/browser/searchResultsView';
|
||||
import { ISearchWidgetOptions, SearchWidget } from 'vs/workbench/contrib/search/browser/searchWidget';
|
||||
import * as Constants from 'vs/workbench/contrib/search/common/constants';
|
||||
|
@ -113,7 +113,7 @@ export class SearchView extends ViewPane {
|
|||
|
||||
private state: SearchUIState = SearchUIState.Idle;
|
||||
|
||||
private actions: Array<CollapseDeepestExpandedLevelAction | ClearSearchResultsAction | ClearSearchPatternInputsAction | OpenSearchEditorAction> = [];
|
||||
private actions: Array<CollapseDeepestExpandedLevelAction | ClearSearchResultsAction | OpenSearchEditorAction> = [];
|
||||
private toggleCollapseAction: ToggleCollapseAndExpandAction;
|
||||
private cancelAction: CancelSearchAction;
|
||||
private refreshAction: RefreshAction;
|
||||
|
@ -236,7 +236,6 @@ export class SearchView extends ViewPane {
|
|||
|
||||
this.actions = [
|
||||
this._register(this.instantiationService.createInstance(ClearSearchResultsAction, ClearSearchResultsAction.ID, ClearSearchResultsAction.LABEL)),
|
||||
this._register(this.instantiationService.createInstance(ClearSearchPatternInputsAction, ClearSearchPatternInputsAction.ID, ClearSearchPatternInputsAction.LABEL)),
|
||||
this._register(this.instantiationService.createInstance(OpenSearchEditorAction, OpenSearchEditorAction.ID, OpenSearchEditorAction.LABEL))
|
||||
];
|
||||
|
||||
|
@ -1018,7 +1017,7 @@ export class SearchView extends ViewPane {
|
|||
this.searchWidget.searchInput.getValue() === '';
|
||||
}
|
||||
|
||||
allSearchPatternFieldsClear(): boolean {
|
||||
allFilePatternFieldsClear(): boolean {
|
||||
return this.searchExcludePattern.getValue() === '' &&
|
||||
this.searchIncludePattern.getValue() === '';
|
||||
}
|
||||
|
@ -1038,6 +1037,9 @@ export class SearchView extends ViewPane {
|
|||
this.showSearchWithoutFolderMessage();
|
||||
}
|
||||
if (clearInput) {
|
||||
if (this.allSearchFieldsClear()) {
|
||||
this.clearFilePatternFields();
|
||||
}
|
||||
this.searchWidget.clear();
|
||||
}
|
||||
this.viewModel.cancelSearch();
|
||||
|
@ -1047,7 +1049,7 @@ export class SearchView extends ViewPane {
|
|||
aria.status(nls.localize('ariaSearchResultsClearStatus', "The search results have been cleared"));
|
||||
}
|
||||
|
||||
clearSearchPatternInputs(): void {
|
||||
clearFilePatternFields(): void {
|
||||
this.searchExcludePattern.clear();
|
||||
this.searchIncludePattern.clear();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue