mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-11 18:48:33 -05:00
Merge from vscode a5cf1da01d5db3d2557132be8d30f89c38019f6c (#8525)
* Merge from vscode a5cf1da01d5db3d2557132be8d30f89c38019f6c * remove files we don't want * fix hygiene * update distro * update distro * fix hygiene * fix strict nulls * distro * distro * fix tests * fix tests * add another edit * fix viewlet icon * fix azure dialog * fix some padding * fix more padding issues
This commit is contained in:
@@ -12,7 +12,7 @@ import { URI } from 'vs/base/common/uri';
|
||||
import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles';
|
||||
import { IBackupFileService } from 'vs/workbench/services/backup/common/backup';
|
||||
import { Schemas } from 'vs/base/common/network';
|
||||
import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService';
|
||||
import { IUntitledTextEditorService } from 'vs/workbench/services/untitled/common/untitledTextEditorService';
|
||||
import { DefaultEndOfLine } from 'vs/editor/common/model';
|
||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
import { IEditorViewState } from 'vs/editor/common/editorCommon';
|
||||
@@ -20,18 +20,18 @@ import { DataTransfers } from 'vs/base/browser/dnd';
|
||||
import { DragMouseEvent } from 'vs/base/browser/mouseEvent';
|
||||
import { normalizeDriveLetter } from 'vs/base/common/labels';
|
||||
import { MIME_BINARY } from 'vs/base/common/mime';
|
||||
import { isWindows, isLinux, isWeb } from 'vs/base/common/platform';
|
||||
import { isWindows, isWeb } from 'vs/base/common/platform';
|
||||
import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { isCodeEditor } from 'vs/editor/browser/editorBrowser';
|
||||
import { IEditorIdentifier, GroupIdentifier } from 'vs/workbench/common/editor';
|
||||
import { IEditorService, IResourceEditor } from 'vs/workbench/services/editor/common/editorService';
|
||||
import { Disposable } from 'vs/base/common/lifecycle';
|
||||
import { addDisposableListener, EventType } from 'vs/base/browser/dom';
|
||||
import { addDisposableListener, EventType, asDomUri } from 'vs/base/browser/dom';
|
||||
import { IEditorGroup } from 'vs/workbench/services/editor/common/editorGroupsService';
|
||||
import { IWorkspaceEditingService } from 'vs/workbench/services/workspaces/common/workspaceEditing';
|
||||
import { withNullAsUndefined } from 'vs/base/common/types';
|
||||
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
|
||||
import { IHostService } from 'vs/workbench/services/host/browser/host';
|
||||
import { isStandalone } from 'vs/base/browser/browser';
|
||||
|
||||
export interface IDraggedResource {
|
||||
resource: URI;
|
||||
@@ -163,7 +163,7 @@ export class ResourcesDropHandler {
|
||||
@IWorkspacesService private readonly workspacesService: IWorkspacesService,
|
||||
@ITextFileService private readonly textFileService: ITextFileService,
|
||||
@IBackupFileService private readonly backupFileService: IBackupFileService,
|
||||
@IUntitledEditorService private readonly untitledEditorService: IUntitledEditorService,
|
||||
@IUntitledTextEditorService private readonly untitledTextEditorService: IUntitledTextEditorService,
|
||||
@IEditorService private readonly editorService: IEditorService,
|
||||
@IConfigurationService private readonly configurationService: IConfigurationService,
|
||||
@IWorkspaceEditingService private readonly workspaceEditingService: IWorkspaceEditingService,
|
||||
@@ -234,7 +234,7 @@ export class ResourcesDropHandler {
|
||||
|
||||
// Untitled: always ensure that we open a new untitled for each file we drop
|
||||
if (droppedDirtyEditor.resource.scheme === Schemas.untitled) {
|
||||
droppedDirtyEditor.resource = this.untitledEditorService.createOrGet().getResource();
|
||||
droppedDirtyEditor.resource = this.untitledTextEditorService.createOrGet().getResource();
|
||||
}
|
||||
|
||||
// Return early if the resource is already dirty in target or opened already
|
||||
@@ -324,20 +324,14 @@ export function fillResourceDataTransfers(accessor: ServicesAccessor, resources:
|
||||
return obj;
|
||||
});
|
||||
|
||||
const firstSource = sources[0];
|
||||
|
||||
// Text: allows to paste into text-capable areas
|
||||
const lineDelimiter = isWindows ? '\r\n' : '\n';
|
||||
event.dataTransfer.setData(DataTransfers.TEXT, sources.map(source => source.resource.scheme === Schemas.file ? normalize(normalizeDriveLetter(source.resource.fsPath)) : source.resource.toString()).join(lineDelimiter));
|
||||
|
||||
const envService = accessor.get(IWorkbenchEnvironmentService);
|
||||
const hasRemote = !!envService.configuration.remoteAuthority;
|
||||
if (
|
||||
!(isLinux && hasRemote) && // Not supported on linux remote due to chrome limitation https://github.com/microsoft/vscode-remote-release/issues/849
|
||||
!isWeb // Does not seem to work anymore when running from web, the file ends up being empty (and PWA crashes)
|
||||
) {
|
||||
// Download URL: enables support to drag a tab as file to desktop (only single file supported)
|
||||
event.dataTransfer.setData(DataTransfers.DOWNLOAD_URL, [MIME_BINARY, basename(firstSource.resource), firstSource.resource.toString()].join(':'));
|
||||
// Download URL: enables support to drag a tab as file to desktop (only single file supported)
|
||||
// Disabled for PWA web due to: https://github.com/microsoft/vscode/issues/83441
|
||||
if (!sources[0].isDirectory && (!isWeb || !isStandalone)) {
|
||||
event.dataTransfer.setData(DataTransfers.DOWNLOAD_URL, [MIME_BINARY, basename(sources[0].resource), asDomUri(sources[0].resource).toString()].join(':'));
|
||||
}
|
||||
|
||||
// Resource URLs: allows to drop multiple resources to a target in VS Code (not directories)
|
||||
@@ -482,3 +476,23 @@ export class DragAndDropObserver extends Disposable {
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
export function containsDragType(event: DragEvent, ...dragTypesToFind: string[]): boolean {
|
||||
if (!event.dataTransfer) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const dragTypes = event.dataTransfer.types;
|
||||
const lowercaseDragTypes: string[] = [];
|
||||
for (let i = 0; i < dragTypes.length; i++) {
|
||||
lowercaseDragTypes.push(dragTypes[i].toLowerCase()); // somehow the types are lowercase
|
||||
}
|
||||
|
||||
for (const dragType of dragTypesToFind) {
|
||||
if (lowercaseDragTypes.indexOf(dragType.toLowerCase()) >= 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user