From fb90ab7e1c58182e69f45af190269e18ccf7e151 Mon Sep 17 00:00:00 2001 From: Peng Lyu Date: Thu, 2 Jun 2022 15:12:32 -0700 Subject: [PATCH] For untitled notebook, show simple dialog instead of native one. (#10279) --- src/platform/export/exportDialog.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/platform/export/exportDialog.ts b/src/platform/export/exportDialog.ts index 4151387860f..6d3d6467009 100644 --- a/src/platform/export/exportDialog.ts +++ b/src/platform/export/exportDialog.ts @@ -9,6 +9,7 @@ import { SaveDialogOptions, Uri } from 'vscode'; import { IApplicationShell, IWorkspaceService } from '../common/application/types'; import * as localize from '../common/utils/localize'; import { ExportFormat, IExportDialog } from './types'; +import { IsWebExtension } from '../common/types'; // File extensions for each export method export const PDFExtensions = { PDF: ['pdf'] }; @@ -19,7 +20,8 @@ export const PythonExtensions = { Python: ['py'] }; export class ExportDialog implements IExportDialog { constructor( @inject(IApplicationShell) private readonly applicationShell: IApplicationShell, - @inject(IWorkspaceService) private workspaceService: IWorkspaceService + @inject(IWorkspaceService) private workspaceService: IWorkspaceService, + @inject(IsWebExtension) private readonly isWebExtension: boolean ) {} public async showDialog( @@ -70,7 +72,12 @@ export class ExportDialog implements IExportDialog { return this.applicationShell.showSaveDialog(options); } - private async getDefaultUri(source: Uri | undefined, targetFileName: string): Promise { + private async getDefaultUri(source: Uri | undefined, targetFileName: string): Promise { + if (source && source.scheme === 'untitled' && this.isWebExtension) { + // Force using simple file dialog + return undefined; + } + if ( !source || source.scheme === 'file' ||