From 6770bf877e00c1ceaa1d67dd2ad76f523eefc8bb Mon Sep 17 00:00:00 2001 From: Amir Omidi Date: Fri, 7 Feb 2020 17:17:58 -0800 Subject: [PATCH] ok button targetted fix (#9095) --- .../azurecore/src/azureResource/commands.ts | 25 ++++++++++++++----- .../services/subscriptionFilterService.ts | 24 ++++++++++-------- src/vs/vscode.d.ts | 3 +++ .../workbench/api/common/extHostQuickOpen.ts | 13 ++++++++++ 4 files changed, 48 insertions(+), 17 deletions(-) diff --git a/extensions/azurecore/src/azureResource/commands.ts b/extensions/azurecore/src/azureResource/commands.ts index 3d8e0ef71e..c700a52f96 100644 --- a/extensions/azurecore/src/azureResource/commands.ts +++ b/extensions/azurecore/src/azureResource/commands.ts @@ -71,13 +71,26 @@ export function registerAzureResourceCommands(appContext: AppContext, tree: Azur }; }).sort((a, b) => a.label.localeCompare(b.label)); - const selectedSubscriptionQuickPickItems = await window.showQuickPick(subscriptionQuickPickItems, { canPickMany: true }); - if (selectedSubscriptionQuickPickItems && selectedSubscriptionQuickPickItems.length > 0) { - await tree.refresh(node, false); + const selectedQuickPickItems = subscriptionQuickPickItems.filter(s => s.picked); - selectedSubscriptions = selectedSubscriptionQuickPickItems.map((subscriptionItem) => subscriptionItem.subscription); - await subscriptionFilterService.saveSelectedSubscriptions(accountNode.account, selectedSubscriptions); - } + const quickPick = window.createQuickPick(); + quickPick.ok = true; + quickPick.items = subscriptionQuickPickItems; + quickPick.canSelectMany = true; + quickPick.selectedItems = selectedQuickPickItems; + + quickPick.show(); + + quickPick.onDidAccept(async event => { + quickPick.hide(); + const selectedSubscriptionQuickPickItems = quickPick.selectedItems; + if (selectedSubscriptionQuickPickItems && selectedSubscriptionQuickPickItems.length > 0) { + await tree.refresh(node, false); + + selectedSubscriptions = selectedSubscriptionQuickPickItems.map((subscriptionItem) => subscriptionItem.subscription); + await subscriptionFilterService.saveSelectedSubscriptions(accountNode.account, selectedSubscriptions); + } + }); }); appContext.apiWrapper.registerCommand('azure.resource.refreshall', () => tree.notifyNodeChanged(undefined)); diff --git a/extensions/azurecore/src/azureResource/services/subscriptionFilterService.ts b/extensions/azurecore/src/azureResource/services/subscriptionFilterService.ts index 16586401a5..2a1743cccd 100644 --- a/extensions/azurecore/src/azureResource/services/subscriptionFilterService.ts +++ b/extensions/azurecore/src/azureResource/services/subscriptionFilterService.ts @@ -54,19 +54,21 @@ export class AzureResourceSubscriptionFilterService implements IAzureResourceSub filters.push(...selectedSubscriptionsCache[accountId].map((subcription) => `${accountId}/${subcription.id}/${subcription.name}`)); } - const resourceFilterConfig = this._config.inspect(AzureResourceSubscriptionFilterService.filterConfigName); - let configTarget = ConfigurationTarget.Global; - if (resourceFilterConfig) { - if (resourceFilterConfig.workspaceFolderValue) { - configTarget = ConfigurationTarget.WorkspaceFolder; - } else if (resourceFilterConfig.workspaceValue) { - configTarget = ConfigurationTarget.Workspace; - } else if (resourceFilterConfig.globalValue) { - configTarget = ConfigurationTarget.Global; + if (this._config) { + const resourceFilterConfig = this._config.inspect(AzureResourceSubscriptionFilterService.filterConfigName); + let configTarget = ConfigurationTarget.Global; + if (resourceFilterConfig) { + if (resourceFilterConfig.workspaceFolderValue) { + configTarget = ConfigurationTarget.WorkspaceFolder; + } else if (resourceFilterConfig.workspaceValue) { + configTarget = ConfigurationTarget.Workspace; + } else if (resourceFilterConfig.globalValue) { + configTarget = ConfigurationTarget.Global; + } } - } - await this._config.update(AzureResourceSubscriptionFilterService.filterConfigName, filters, configTarget); + await this._config.update(AzureResourceSubscriptionFilterService.filterConfigName, filters, configTarget); + } } private _config: WorkspaceConfiguration = undefined; diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index 67612ad27d..c9b6ae2899 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -7940,6 +7940,9 @@ declare module 'vscode' { * An event signaling when the selected items have changed. */ readonly onDidChangeSelection: Event; + + // {SQL CARBON EDIT} Temporary change to allow setting the behavior of the QuickPick + ok: boolean; } /** diff --git a/src/vs/workbench/api/common/extHostQuickOpen.ts b/src/vs/workbench/api/common/extHostQuickOpen.ts index ff7703bdd8..8a35b80e93 100644 --- a/src/vs/workbench/api/common/extHostQuickOpen.ts +++ b/src/vs/workbench/api/common/extHostQuickOpen.ts @@ -261,9 +261,22 @@ class ExtHostQuickInput implements QuickInput { this._onDidChangeValueEmitter ]; + constructor(protected _proxy: MainThreadQuickOpenShape, protected _extensionId: ExtensionIdentifier, private _onDidDispose: () => void) { } + // {SQL CARBON EDIT} START Temporary change for ok button visibility + private _ok = false; + get ok() { + return this._ok; + } + + set ok(ok: boolean) { + this._ok = ok; + this.update({ ok }); + } + // {SQL CARBON EDIT} END Temporary change for ok button visibility + get title() { return this._title; }